回覆列表
  • 1 # 使用者5359048859406

    我們從小就從《資訊科技》課本上學習到了計算機儲存單位轉換的知識:

    計算機儲存以位元組(Byte)為單位1024 Byte = 1 KB1024 KB = 1 MB1024 MB = 1 GB考試重點:是滿1024進位,而不是滿1000進位

    今天我要說的是:這是錯的。

    先放一個結論在開頭吧,以防後面說得太複雜嚇跑大家。

    表示儲存單位時,有兩種規範的寫法

    第一種是使用國際單位制(SI)十進位制字首,如下:

    1000 Byte = 1 kB 1000 kB = 1 MB 1000 MB = 1 GB 其中kB、MB、GB也可以用英語單詞全稱,依次是:kilobyte,megabyte,gigabyte

    第二種寫法是使用IEC 60027-2二進位制字首,如下:

    1024 Byte = 1 KiB1024 KiB = 1 MiB1024 MiB = 1 GiB其中KiB、MiB、GiB也可以用英語單詞全稱,依次是:kibibyte,mebibyte,gibibyte

    其餘的表示法和轉換規則都是不規範的,或者說是錯誤的。

    下面來詳細說一下。我們所有熟悉的單位,都是1000進位,比如長度單位m(米),1000 m=1 km。為什麼全世界的單位只有計算機的K跟別的不一樣?這些k、M、G的字首又是怎樣規定的呢?

    國際單位制(SI)國際標準文件規定了我們熟悉的k、M、G等字首。這些字首被稱為國際單位制(SI)十進位制字首。

    國際標準文件中具體的表述是這樣的

    藍框當中就是我們熟悉的十進位制字首。比如千米(km)的英文是kilometer等等,就可以根據這個規則拼起來。

    但值得注意的是黃框裡的內容:

    These SI prefixes refer strictly to powers of 10. They should not be used to indicate powers of 2 (for example, one kilobit represents 1000 bits and not 1024 bits). The IEC has adopted prefixes for binary powers in the international standard IEC 60027-2: 2005, third edition, Letter symbols to be used in electrical technology – Part 2: Telecommunications and electronics. The names and symbols for the prefixes corresponding to , , , , , and are, respectively: kibi, Ki; mebi, Mi; gibi, Gi; tebi, Ti; pebi, Pi; and exbi, Ei. Thus, for example, one kibibyte would be written: 1 KiB = B = 1024 B, where B denotes a byte.Although these prefixes are not part of the SI, they should be used in the field of information technology to avoid the incorrect usage of the SI prefixes.

    我翻譯一下:

    這些國際單位制(SI)字首嚴格地指代10的幾次方,而不應該用於指代2的幾次方(例如,1 kilobit表示1000 bits而不是1024 bits)。國際電工委員會(IEC)已經在國際標準IEC 60027-2: 2005(文件全名見原文)當中規定了用於2的次方數的字首。其中 , , , , 和的名稱和對應的符號依次為:kibi, Ki; mebi, Mi; gibi, Gi; tebi, Ti; pebi, Pi; and exbi, Ei. 也就是說,1 kibibyte可以寫成 1KiB,它等於2的10次方B,也就是1024 B,其中B表示的是位元組(byte)。這些字首不是國際單位制(SI)規定的,它們被用於資訊科技領域,以避免對國際單位制(SI)字首的誤用。

    國際單位制(SI)國際標準裡提到了另外一個標準,那就是國際電工委員會的IEC 60027-2: 2005,這個標準才是規定資訊科技領域儲存單位字首的標準。我們找來看一下:

    不但有明確的規定,下面還舉了例子,比如1 MiB = 1048576 B,比如1 MB = 1000000 B. 而且NOTE裡還很貼心的教給大家該如何用英語讀這些字首。大概是說第一個音節(如ki,me,gi等)跟SI字首一樣的發音,第二個音節(bi)發bee的音。

    正確的說完了。再說說我們的教材為什麼會錯。

    如果你用過蘋果電腦的macOS作業系統,你會發現同一個檔案複製到蘋果系統裡之後,顯示的大小會比Windows裡大一些。這是因為蘋果電腦的macOS系統的儲存單位採用的是國際單位制(SI)的十進位制字首,也就1000進位的,而Windows裡的換算是按1024進位的,同一個檔案到了macOS系統裡,顯示的大小就會大一些。macOS系統遵循了SI的規範寫法,把檔案大小的單位寫作MB、GB等等。

    如果你用過Linux作業系統,你會發現很多命令列工具裡會廣泛地使用MiB、GiB這樣的單位。Linux系統以及之上的大部分GNU軟體包都遵循了IEC 60027-2標準,使用了規範的二進位制字首。

    但Windows作業系統顯示的是KB、MB、GB等SI十進位制字首,而實際進行單位轉換時卻按照1024進位的方式進行轉換。所以錯的不是我們的教材,而是Windows作業系統……

    PS. 有人提到標準釋出時間較晚的問題。但顯然Windows 10作業系統的釋出時間晚於任何一個相關標準,但仍保留了這個錯誤的寫法。無論標準何時釋出,錯誤就是錯誤。不論是在產品釋出當時就是錯誤,還是在如今變成了一個錯誤。

    最後給大家奉上幾個冷知識

    一張可刻錄的CD光碟的容量是700MiB (1024進位)

    一張可刻錄的DVD光碟的容量是4.7GB (1000進位,相當於4.38GiB)

    同樣是標準光碟的容量,卻採用了不同的單位字首,實在是很奇怪。

  • 中秋節和大豐收的關聯?
  • 不想跟公婆住又沒錢買房子怎麼辦?