存储与网络中的 GB、MB、KB、B:到底是 1000 还是 1024?

内容纲要

标签:存储单位, 网络单位, GB换算, MB换算, 1024和1000的区别, 技术常识, 数字单位, 数据传输, 操作系统


一、为什么会有“1000 vs 1024”的混乱?

你是不是遇到过这种情况:

明明买的是 1TB 的硬盘,系统只显示 931GB?\
网络标称 100Mbps,下载速度却不到 12.5MB/s?

这不是奸商骗人,也不是你电脑出问题了,而是 “单位换算标准”不同 的锅。

这个问题,得从两个体系说起:

  • 二进制标准(Binary Prefix):以 1024 为单位,常用于计算机存储
  • 十进制标准(Decimal Prefix):以 1000 为单位,常用于网络传输和厂商标注

二、单位对照表:十进制 vs 二进制

单位名称 十进制(SI标准) 二进制(计算机实际)
1 KB 1,000 B 1,024 B(1 KiB)
1 MB 1,000 KB = 10⁶ B 1,024 KiB = 2²⁰ B
1 GB 1,000 MB = 10⁹ B 1,024 MiB = 2³⁰ B
1 TB 1,000 GB = 10¹² B 1,024 GiB = 2⁴⁰ B

✅ SI(国际单位制)推荐使用十进制,但计算机世界离不开二进制。


三、存储设备:硬盘和U盘用的是1000

原因:

厂商为了数字更好看(你懂的),采用的是十进制标准

1 GB = 1,000,000,000 B(而不是 1,073,741,824 B)

所以:

  • 你买的 1TB (=1000GB) 硬盘,系统按二进制显示是:
    1000 * 10^9 / (1024^3) ≈ 931 GB

这不是缺斤少两,而是换算体系不同。


四、操作系统和软件:用的是1024

大多数操作系统(如 Windows、Linux)、开发工具、编程语言(如 Python)默认使用 二进制换算

例如:

>>> 1 << 30
1073741824   # 1GB = 1024 * 1024 * 1024 = 2^30 bytes

五、网络速度:厂商用的是1000

例子:

你家的宽带如果标称 100Mbps(兆比特每秒),注意:

  • 这是 Mbps,不是 MB/s(兆字节每秒)
  • 1 Byte = 8 bits
  • 所以:

    100Mbps / 8 = 12.5MB/s(最大理论下载速度)

有时你看浏览器里下载只有 11MB/s,不是坑你,而是协议开销、丢包重传、并发请求等组合因素导致。


六、算了、用哪个好?

场景 建议使用单位 推荐理由
编程与存储计算 1024 (二进制) 与内存页、缓存、文件系统一致
网络传输、下载速率 1000 (十进制) 与 ISP、带宽计费方式一致
向用户展示容量(UI) 1000 (十进制) 更近用户感知
向技术人员展示 1024 (二进制) 更近系统实际使用

七、单位后缀建议(避免混乱)

为了解决这个“看上去一样但不一样”的问题,国际上推荐使用两个体系的不同后缀:

  • 十进制(1000)
    • KB、MB、GB、TB ...
  • 二进制(1024)
    • KiB、MiB、GiB、TiB ...

比如 1024 MiB = 1 GiB,但不是 1 GB!

但现实是:几乎没人用 MiB、GiB……


八、一句话总结

如果你是用户:买 1TB 硬盘只显示 931GB,是正常环节。\
如果你是开发者:搞清楚上下文,二进制和十进制千万别搞混。


九、推荐小贴士(彩蛋🌈)

  • 想计算下载速度?除以8
  • 想看硬盘容量真假?df -h
  • 想在代码中统一换算?定义自己的 BINARY_UNITS 字典,别偷懒用 *1000

十、附录代码片段:快速换算工具(Python)

def convert_bytes(size_in_bytes):
    units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']
    for unit in units:
        if size_in_bytes < 1024:
            return f"{size_in_bytes:.2f} {unit}"
        size_in_bytes /= 1024
    return f"{size_in_bytes:.2f} PiB"

print(convert_bytes(1073741824))  # 输出:1.00 GiB

📚 参考资料


你是否突然觉得自己变成了 单位换算王者?以后看到“为啥显示的比买的少”,你可以平静一笑,说出真相:

“兄弟,这不是bug,是标准不同罢了。”

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注

close
arrow_upward