稍微對電腦了解一點的同學可能都知道,電腦中的單位換算是:
1KB = 1024B 1MB = 1024KB 1GB = 1024MB ...
以前,我也是這么認為的....
最近我在Linux解壓某個文件的時候,發現了一個奇怪的單位 MiB 。為啥是MiB,而不是MB呢?立刻百度了一下,說是MiB用來表示計算機二進制單位換算,所以 1MiB = 1024KiB .....
啥?難不成MB 和 MiB 是一樣的嗎,那為啥還在MB中間搞一個撇腳的'i',直接都用MB不好嗎?又經過了一頓百度谷歌維基后,總算是了解了一個大概:
(摘自WikiPedia)
而從硬盤誕生之初,硬盤制作商們就嚴格按照SI標准,采用十進制表示倍數,直至現在。十進制的表示似乎對硬盤制作沒有太大的影響,但對軟件開發來說,實在是太不方便了。計算機中的數據是以二進制形式存在的,在程序對位操作的時候,用十進制單位,難以湊整,這着實逼急了強迫症的程序員們。於是,一些”任性“的程序員們,就把單位進制給改了,改成了方便DeBug的二進制換算。這里的問題在於,改了單位換算,卻沒有換名字!
(摘自WikiPedia)
那么問題來了,為什么到現在為止,仍有許多人認為1GB = 1024MB呢?
那是因為,微軟並沒有在世界上最流行的PC操作系統Windows上根據標准進行修正!直到現在,在最新版的Windows 10中,也沒有做任何變化。哪怕微軟在2001年發布的Windows XP上修正了這個問題,也不會讓大家形成這樣的錯誤認知。真是苦了存儲硬件制造商這么多年背的黑鍋。
PS:
據我了解,現在只有Windows會錯用單位,MacOS和Linux都沒有這個問題。
在網絡技術中,通常用比特(bit)而不是字節(byte)為單位,網絡運營商(ISP)宣傳的百兆光纖,一般指的是100Mb(百兆比特)每秒,對應1比特=1字節,相當於12MB(12兆字節)每秒。其中,大寫的B表示字節,小寫的b表示比特。