二進位前置詞

计算领域,二进制词头IEEE 1541-2002)被用作表示大的数字,采用2的幂而不是用10的幂。所有词头都是1024(210)相乘而不是在国际单位制词头采用的10进制「1000」(103)。尽管有可能混淆,二进制词头经常被写做和发音成和国际单位制词头完全一样,而不是使用下面描述的国际电工委员会(IEC)系统。

字节的次方单位
十进制前缀
(SI)
名字符號次方
千字节kB103
兆字节MB106
吉字节GB109
太字节TB1012
拍字节PB1015
艾字节EB1018
泽字节ZB1021
尧字节YB1024
容字节RB1027
昆字节QB1030
二进制前缀
(IEC 60027-2)
名字符號次方
kibibyteKiB210
mebibyteMiB220
gibibyteGiB230
tebibyteTiB240
pebibytePiB250
exbibyteEiB260
zebibyteZiB270
yobibyteYiB280

历史编辑

使用前缀」(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/K210= 1,024> 10001
mega-M220= 1,048,576> 10002
giga-G230= 1,073,741,824> 10003
tera-T240= 1,099,511,627,776> 10004
peta-P250= 1,125,899,906,842,624> 10005
exa-E260= 1,152,921,504,606,846,976> 10006
zetta-Z270= 1,180,591,620,717,411,303,424> 10007
yotta-Y280= 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进制
kibiKi210162.50x400= 1,024> 103
mebiMi2201650x10 0000= 1,048,576> 106
gibiGi230167.50x4000 0000= 1,073,741,824> 109
tebiTi24016100x100 0000 0000= 1,099,511,627,776> 1012
pebiPi2501612.50x4 0000 0000 0000= 1,125,899,906,842,624> 1015
exbiEi26016150x1000 0000 0000 0000= 1,152,921,504,606,846,976> 1018
zebiZi2701617.50x40 0000 0000 0000 0000= 1,180,591,620,717,411,303,424> 1021
yobiYi28016200x1 0000 0000 0000 0000 0000= 1,208,925,819,614,629,174,706,176> 1024
--2901622.50x400 0000 0000 0000 0000 0000= 1,237,940,039,285,380,274,899,124,224> 1027
--210016250x10 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 ÷ DecDec ÷ Bin举例百分比
kilobyte : kibibyte1.0240.976100 kB ≅ 97.6 KiB+2.4%或−2.3%
megabyte : mebibyte1.0490.954100 MB ≅ 95.4 MiB+4.9%或−4.6%
gigabyte : gibibyte1.0740.931100 GB ≅ 93.1 GiB+7.4%或−6.9%
terabyte : tebibyte1.1000.909100 TB ≅ 90.9 TiB+10%或−9.1%
petabyte : pebibyte1.1260.888100 PB ≅ 88.8 PiB+12.6%或−11.2%
exabyte : exbibyte1.1530.867100 EB ≅ 86.7 EiB+15.3%或−13.3%
zettabyte : zebibyte1.1810.847100 ZB ≅ 84.7 ZiB+18.1%或−15.3%
yottabyte : yobibyte1.2090.827100 YB ≅ 82.7 YiB+20.9%或−17.3%
ronnabyte : -1.2380.808-+23.8%或-19.2%
quettabyte : -1.2680.789-+26.8%或-21.1%

使用方法编辑

軟體编辑

到2010年,多數軟體不再以二進制或十進制來表示位元數值[註 1]IEC二進制命名轉換方法已被少數企業採用,但是並不普遍。IEC引入的明定目標之一就是「保留SI十進制倍數的前置表示,此表示式可以明確清楚表示」[6]。像fdisk/cfdisk,parted還有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编辑

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). 

参见编辑

外部链接编辑