买一个"1TB"的硬盘,插到电脑上却发现只显示"931GB"——这不是奸商缺斤少两,而是硬盘厂商和操作系统用了两套不同的进制在计算"1TB"到底是多少字节。
存储容量的单位换算,历史上一直存在两种算法:
同样是"1 MB",按十进制算是 1,000,000 字节,按二进制算是 1,048,576 字节,两者相差约 4.86%,容量越大差距的绝对值越明显。
早期操作系统和内存厂商习惯用 1024 进制(因为内存芯片容量天然是 2 的幂次),但存储设备(硬盘、U 盘)厂商为了和国际单位制(SI,"千"就是 1000)保持一致,同时也存在增大标称容量数字的现实动机,普遍采用 1000 进制来标注容量——这个历史分歧一直延续到今天,同一个前缀"K/M/G/T"在不同厂商、不同系统语境下实际代表的字节数可能不一样,混用的结果就是各种让人困惑的"容量缩水"投诉。
为了消除这种歧义,国际电工委员会(IEC)在 1998 年正式定义了一套专门表示 1024 进制的单位名称:KiB(kibibyte)、MiB(mebibyte)、GiB(gibibyte)……"i" 代表 binary(二进制),发音上是"kibi""mebi""gibi"。按 IEC 标准,KB(无 i)应该严格只代表 1000 进制的千字节,KiB 才代表 1024 进制的千字节——但这套区分在日常使用中普及得并不彻底,操作系统(比如 Windows 的"文件属性")经常把 1024 进制的数值标注成 KB/MB 而不是规范的 KiB/MiB,进一步加剧了混淆。
硬盘厂商标注的"1TB",用的是十进制:1TB = 1000 × 1000 × 1000 × 1000 字节 = 10¹² 字节。但操作系统显示容量时,通常按二进制计算并除以对应的 1024 次幂来得到"GB"数值:
10¹² 字节 ÷ 1024³ ≈ 931.3
所以操作系统显示的是"931GB"(严格来说应该标注为 931 GiB,但系统界面上通常仍写作 GB)。硬盘的实际物理容量没有任何缩水,字节数完全一致,差异纯粹来自"用哪套进制去换算显示单位"这个统计口径问题。
除了进制混淆,另一个常见的误读是大小写 b:小写 b 通常表示 bit(比特,二进制的一位),大写 B 表示 Byte(字节,等于 8 bit)。网络带宽常用 Mbps(megabit per second,兆比特每秒),而文件下载速度显示常用 MB/s(megabyte per second,兆字节每秒)——同样的数字,100Mbps 的带宽实际下载速度理论上限大约是 100 ÷ 8 = 12.5 MB/s,这也是为什么运营商宣传的"百兆宽带"实际下载速度只有十几兆每秒,很多人因此误以为被"缺斤少两",其实只是 bit 和 Byte 的单位换算差了 8 倍。