震驚!1MB == 1000KB??


稍微對電腦了解一點的同學可能都知道,電腦中的單位換算是:

1KB = 1024B
1MB = 1024KB
1GB = 1024MB
 ...

 

以前,我也是這么認為的....

最近我在Linux解壓某個文件的時候,發現了一個奇怪的單位 MiB 。為啥是MiB,而不是MB呢?立刻百度了一下,說是MiB用來表示計算機二進制單位換算,所以 1MiB = 1024KiB .....

啥?難不成MB 和 MiB 是一樣的嗎,那為啥還在MB中間搞一個撇腳的'i',直接都用MB不好嗎?又經過了一頓百度谷歌維基后,總算是了解了一個大概:

 

其實,在國際單位制(SI)中,早在1960年就已規定好了倍數的表示:

 

                   (摘自WikiPedia)

  而從硬盤誕生之初,硬盤制作商們就嚴格按照SI標准,采用十進制表示倍數,直至現在。十進制的表示似乎對硬盤制作沒有太大的影響,但對軟件開發來說,實在是太不方便了。計算機中的數據是以二進制形式存在的,在程序對位操作的時候,用十進制單位,難以湊整,這着實逼急了強迫症的程序員們。於是,一些”任性“的程序員們,就把單位進制給改了,改成了方便DeBug的二進制換算。這里的問題在於,改了單位換算,卻沒有換名字!

  於是,就有了這樣的說法——“計算機是二進制換算的,所以不是1000進位,而是1024進位。”同一單位在不同情況下有不同定義,這不免會產生混淆。在計算機發展之初,存儲容量還很小,就算是只用字節(Byte)這樣小的單位,也不會出現特別大的數字,單位換算在起初問題還不足以引起人們的重視。后來,在“摩爾定律”的加持下,計算機發生了突飛猛進的變化,單位換算混淆問題日益嚴重。

  到了1998年,國際電工委員會(IEC)才定義了一種新的帶有 二進制前綴的單位,Gibibyte(Giga binary byte)或GiB就是其中一個,它總算是解決了計算機二進制單位與國際單位制在命名上的沖突。

(摘自WikiPedia)

  那么問題來了,為什么到現在為止,仍有許多人認為1GB = 1024MB呢?

 

 

 那是因為,微軟並沒有在世界上最流行的PC操作系統Windows上根據標准進行修正!直到現在,在最新版的Windows 10中,也沒有做任何變化。哪怕微軟在2001年發布的Windows XP上修正了這個問題,也不會讓大家形成這樣的錯誤認知。真是苦了存儲硬件制造商這么多年背的黑鍋。

 

 

 

PS:

據我了解,現在只有Windows會錯用單位,MacOS和Linux都沒有這個問題。

在網絡技術中,通常用比特(bit)而不是字節(byte)為單位,網絡運營商(ISP)宣傳的百兆光纖,一般指的是100Mb(百兆比特)每秒,對應1比特=1字節,相當於12MB(12兆字節)每秒。其中,大寫的B表示字節,小寫的b表示比特。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM