在計算領域,二進制前置詞(IEEE 1541-2002)被用作表示大的數字,採用2的冪而不是用10的冪。所有前置詞都是1024(210)相乘而不是在國際單位制前置詞採用的10進制「1000」(103)。儘管有可能混淆,二進位前置詞經常被寫做和發音成和國際單位制前置詞完全一樣,而不是使用下面描述的國際電工委員會(IEC)系統。
位元組的次方單位 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
歷史
使用前綴「千」(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「十進制」兆比特)。什麼單位被使用和乘冪是二進制還是十進制,依賴於上下文並且不能由單位單獨確定。
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/cfdisk,parted還有apt-get等這些軟體是以它們專有的SI十進制表示法來顯示。
-
GNOME的系統監視視窗,使用IEC前置表示式來顯示記憶體的容量大小,以及網路的傳輸速率
-
BitTornado使用標準的SI前置表示式來顯示資料傳輸率,以及使用IEC前置表示式來顯示檔案大小
-
Deluge使用IEC顯示資料傳輸率與檔案大小
在英語裡面,二進位前置詞的前面的音節發音和相應的國際單位制前置詞相同,後一個音節發作"bee"。
大部分電腦記憶體,如隨機訪問存儲器、只讀存儲器和快閃記憶體是用二進制表示的。這是關於記憶體最自然的配置方法,因為連接的地址線有對應的合法地址,這樣可以很方便地聚合成更大塊的記憶體。
硬碟製造商用十進制來表示容量。這種用法有很長久的傳統,甚至在國際單位制前置詞在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」。這引起了混淆並導致法律糾紛,而有時候由於其他技術原因,如在硬碟文件系統裡面錯誤地分區及考慮格式化和未格式化的容量的時候更糟糕。
注釋
參考資料
相關條目
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.