二進位前置詞

計算領域,二進制前置詞IEEE 1541-2002)被用作表示大的數字,採用2的冪而不是用10的冪。所有前置詞都是1024(210)相乘而不是在國際單位制前置詞採用的10進制「1000」(103)。儘管有可能混淆,二進位前置詞經常被寫做和發音成和國際單位制前置詞完全一樣,而不是使用下面描述的國際電工委員會(IEC)系統。

位元組的次方單位
十進制前綴
(SI)
名字 符號 倍數
千位元組 kB 103
百萬位元組 MB 106
吉位元組 GB 109
兆位元組 TB 1012
拍位元組 PB 1015
艾位元組 EB 1018
皆位元組 ZB 1021
佑位元組 YB 1024
羅位元組 RB 1027
昆位元組 QB 1030
二進制前綴
(IEC 60027-2)
名字 符號 倍數
kibibyte KiB 210
mebibyte MiB 220
gibibyte GiB 230
tebibyte TiB 240
pebibyte PiB 250
exbibyte EiB 260
zebibyte ZiB 270
yobibyte YiB 280

歷史

編輯

使用前綴」(kilo-)、「」(mega-)、「」(giga-)等,以及縮寫符號「k」、「M」、「G」等(相關條目下表:千的特性),在二進制上領域會引起嚴重的混淆。

1999年1月,國際電工委員會(IEC)引入了「kibi-」、「mebi-」、「gibi-」等前置詞以及縮寫符號「Ki」、「Mi」、「Gi」等來明確說明二進制乘數計數。[1]

二進位前置詞已經被很多其他組織採用了,比較著名的有電氣電子工程師協會(相關條目IEEE 1541),歐洲聯盟(作為一致性文件HD 60027-2:2003-03[2])。然而,缺少官方支持,二進位前置詞還沒有廣泛被製造業者和個人採用,很多人繼續在二進制領域使用國際單位制前置詞。

國際標準

編輯

國際單位制

編輯
名稱 符號 2B 展開 1000D
kilo- k/K 210 = 1,024 > 10001
mega- M 220 = 1,048,576 > 10002
giga- G 230 = 1,073,741,824 > 10003
tera- T 240 = 1,099,511,627,776 > 10004
peta- P 250 = 1,125,899,906,842,624 > 10005
exa- E 260 = 1,152,921,504,606,846,976 > 10006
zetta- Z 270 = 1,180,591,620,717,411,303,424 > 10007
yotta- Y 280 = 1,208,925,819,614,629,174,706,176 > 10008

除了「K」以外,一個字母的縮寫在國際單位制前置詞是唯一的,可以與「k」互換(在國際單位制前置詞里,「K」代表熱力學溫標,「k」代表1000)。

在精確度不是很重要的上下文中,如文件和內存大小,這些前置詞被廣泛使用,但是和國際單位制前置詞的定義相衝突。國際單位制前置詞的名字和值在1960年國際單位制前置詞標準中制訂,是1000的乘冪值。2005年,標準字典不承認這些前置詞的二進制意義。

國際計量局(維護國際單位制前置詞的機構)特別禁止二進制的用法,推薦使用IEC前置詞(二進位前置詞)作為一種改變方法。[3]

有些人建議「k」代表1000,而「K」代表1024,但是更高的前置詞不能這樣擴展使用並且從來沒有被廣泛承認過。

儘管從理論上來講,可以在密碼學數據壓縮、數據傳輸率領域找到用二進位前置詞表示位或者字節的應用,但是從來沒有實際應用過。

非正式的,前置詞有自己的使用方法。可能聽過「一個40K的文件」(40「二進制」千字節)或者「一個2M的網際網路連接」(每秒2「十進制」兆比特)。什麼單位被使用和乘冪是二進制還是十進制,依賴於上下文並且不能由單位單獨確定。

ISO/IEC

編輯

1999年,國際電工委員會(IEC)公布了修正2:「IEC 60027-2:電工技術應用的字母符號—第二部分:通信和電子。」這個標準,在1998年通過,介紹了前置詞「kibi-」、「mebi-」、「gibi-」、「tebi-」、「pebi-」、「exbi-」,作為二進制乘冪的計數方法。名字的前兩個字母來源於原來的國際單位制前置詞(例如, kilo binary byte縮寫為「kibi-Byte」、「kiB」、「kibi-byte」),而後面的「bi」是二進制的縮寫。同時明確定義,從IEC的觀點來看,國際單位制前置詞只有十進制的意義而不再用作二進制的意義。

修正在標準的下一版:「IEC 60027-2 (2000-11) Ed. 2.0」。第二版規定最高到「exbi-」,但是在2005年,第三版加入了「zebi-」和「yobi-」這樣所有的標準的國際單位制前置詞都有了他們的二進制計數夥伴。

2008年,ISO/IEC IEC 80000-13:2008標準取消並取代第3.8和3.9的IEC 60027-2:2005(二進制前綴倍數),增加了明確的定義和一些數量[4][5]

名稱 符號 2進制 16進制 10進制
kibi Ki 210 162.5 0x400 = 1,024 > 103
mebi Mi 220 165 0x10 0000 = 1,048,576 > 106
gibi Gi 230 167.5 0x4000 0000 = 1,073,741,824 > 109
tebi Ti 240 1610 0x100 0000 0000 = 1,099,511,627,776 > 1012
pebi Pi 250 1612.5 0x4 0000 0000 0000 = 1,125,899,906,842,624 > 1015
exbi Ei 260 1615 0x1000 0000 0000 0000 = 1,152,921,504,606,846,976 > 1018
zebi Zi 270 1617.5 0x40 0000 0000 0000 0000 = 1,180,591,620,717,411,303,424 > 1021
yobi Yi 280 1620 0x1 0000 0000 0000 0000 0000 = 1,208,925,819,614,629,174,706,176 > 1024
- - 290 1622.5 0x400 0000 0000 0000 0000 0000 = 1,237,940,039,285,380,274,899,124,224 > 1027
- - 2100 1625 0x10 0000 0000 0000 0000 0000 0000 = 1,267,650,600,228,229,401,496,703,205,375 > 1030

例如:300 GB ≅ 279.5 GiB(= 0x117.6592E GiB = 0x45D96.4B8 MiB = 0x1176592E KiB = 0x45D964B800 bytes)。

與十進制的比較

編輯

請注意,隨著大小增加,百分比差距在十進制和二進制之間變大,從2.4%(千-K)到超過25%(昆-Q),換言之一部以十進制標示為1QB數據儲存量的裝置,在電腦實際操作時(採用二進制),數據儲存量只有不到0.79QB。這也是各製造商堅持使用十進制來標示以二進制為基礎的電腦數據的主要原因。

名稱 Bin ÷ Dec Dec ÷ Bin 舉例 百分比
kilobyte : kibibyte 1.024 0.976 100 kB ≅ 97.6 KiB +2.4%或−2.3%
megabyte : mebibyte 1.049 0.954 100 MB ≅ 95.4 MiB +4.9%或−4.6%
gigabyte : gibibyte 1.074 0.931 100 GB ≅ 93.1 GiB +7.4%或−6.9%
terabyte : tebibyte 1.100 0.909 100 TB ≅ 90.9 TiB +10%或−9.1%
petabyte : pebibyte 1.126 0.888 100 PB ≅ 88.8 PiB +12.6%或−11.2%
exabyte : exbibyte 1.153 0.867 100 EB ≅ 86.7 EiB +15.3%或−13.3%
zettabyte : zebibyte 1.181 0.847 100 ZB ≅ 84.7 ZiB +18.1%或−15.3%
yottabyte : yobibyte 1.209 0.827 100 YB ≅ 82.7 YiB +20.9%或−17.3%
ronnabyte : - 1.238 0.808 - +23.8%或-19.2%
quettabyte : - 1.268 0.789 - +26.8%或-21.1%

使用方法

編輯

軟體

編輯

到2010年,多數軟體不再以二進制或十進制來表示位元數值[註 1]IEC二進制命名轉換方法已被少數企業採用,但是並不普遍。IEC引入的明定目標之一就是「保留SI十進制倍數的前置表示,此表示式可以明確清楚表示」[6]。像fdisk/cfdiskparted還有apt-get等這些軟體是以它們專有的SI十進制表示法來顯示。

發音

編輯

在英語裡面,二進位前置詞的前面的音節發音和相應的國際單位制前置詞相同,後一個音節發作"bee"。

電腦記憶體

編輯
 
這些是容量536,870,912位元組(512×220)的記憶體,都被標上「512MB」容量的標籤

大部分電腦記憶體,如隨機訪問存儲器只讀存儲器快閃記憶體是用二進制表示的。這是關於記憶體最自然的配置方法,因為連接的地址線有對應的合法地址,這樣可以很方便地聚合成更大塊的記憶體。

硬碟

編輯

硬碟製造商用十進制來表示容量。這種用法有很長久的傳統,甚至在國際單位制前置詞在1960年採用前就開始使用了。例如,第一個IBM350的硬碟有5,000,000個6比特字在100個字扇區(如塊)組合起來。這出現在國際單位制前置詞之前。

快閃記憶體

編輯

USB快閃記憶體是一種記憶卡,一般是用十進制表示,常用2nGB作為容量,如1GB、 2GB、 4GB、 8GB、 16GB、 32GB、 64GB、 128GB、 256GB、 512GB(0.5TB)、 1024GB(1TiB)、 2048GB(2TiB)等。

CD通常用二進制表示。一個「700MB」(或「80分鐘」)的CD的容量大概是700MiB。[7]然而,DVD的容量是用十進制表示的。一個「4.7 GB」的DVD通常的容量是4.38GiB。[8]

匯流排

編輯

匯流排帶寬是用十進制表示。不是因為硬碟的容量採用了十進制,也不是因為比特率,而是因為時鐘速度。如 "PC3200"內存運行在一個雙200 MHz匯流排上,每個時鐘周期傳送8位元組數據,因此帶寬是200,000,000×2×8 = 3,200,000,000位元組/秒。

爭議

編輯

一些現代的電腦用戶認為,記憶體和硬碟都是存儲工具,並且希望它們的容量可以用同一種方法度量。作業系統經常用二進制來報告磁碟空間的現狀使這種期望加強了。結果是買一個「30 GB」的硬碟會明顯少了容量,因為Microsoft Windows不會報告「30 GB」,而是用兩種方法來報告硬碟的容量:「30,064,771,072位元組」和「28 GB」。這引起了混淆並導致法律糾紛,而有時候由於其他技術原因,如在硬碟文件系統裡面錯誤地分區及考慮格式化和未格式化的容量的時候更糟糕。

注釋

編輯
  1. ^ 十進制前置詞是表示1千的整數次的前置詞。例如,「Kilo」表示1000,「mega」表示10002或100萬,「giga」表示10003或10億,等等。SI前置詞是十進制前置詞。

參考資料

編輯
  1. ^ Amendment 2 to IEC International Standard IEC 60027-2: Letter symbols to be used in electrical technology—Part 2: Telecommunications and electronics [1]頁面存檔備份,存於網際網路檔案館
  2. ^ HD 60027-2:2003頁面存檔備份,存於網際網路檔案館) Information about the harmonization document (obtainable on order)
  3. ^ The International System of Units, 8th edition, 2006頁面存檔備份,存於網際網路檔案館)—Side note in section 3.1—SI prefixes
  4. ^ niso, New Specs and Standards. ISO. [2008-12-08]. (原始內容存檔於2008-12-08). 
  5. ^ Prefixes for binary multiples. IEC. [2016-09-24]. (原始內容存檔於2016-09-25) (英語). 
  6. ^ IEEE Std 1541-2002: IEEE Trial-Use Standard for Prefixes for Binary Multiples (PDF). Reaffirmed 27 March 2008. 12 February 2003 [2007-07-29]. ISBN 0-7381-3385-X. doi:10.1109/IEEESTD.2003.94236. 
  7. ^ Data capacity of CDs. [2007-01-18]. (原始內容存檔於2006-07-15). 
  8. ^ Understanding Recordable and Rewritable DVD (PDF). [2007-01-18]. (原始內容 (PDF)存檔於2009-04-19). 

相關條目

編輯

外部連結

編輯