单位换算的坑:GiB 和 GB 到底差多少
生活与计算发布于 2026-10-31
买了一块 1TB 的硬盘,插上电脑显示 931GB。这不是短斤少两,是两个单位同名不同义。
1000 还是 1024
| 十进制(SI) | 二进制(IEC) | 倍数 |
|---|---|---|
| KB | KiB | 1000 vs 1024 |
| MB | MiB | 10⁶ vs 1024² |
| GB | GiB | 10⁹ vs 1024³ |
| TB | TiB | 10¹² vs 1024⁴ |
硬盘厂商按 1000 算(1TB = 10¹² 字节),操作系统按 1024 算却仍然写「GB」。于是:
1,000,000,000,000 / 1024³ = 931.3 GiB
差 6.9%。这不是 bug,是命名习惯的历史遗留。
所以看到一个存储容量数字时,先问:它是按 1000 还是 1024 算的?
- 网络带宽(100Mbps 宽带)永远是 1000 进制,而且单位是比特不是字节 —— 100Mbps ≈ 12.5MB/s
- 内存(16GB)通常按 1024
- 云服务商的对象存储按 1000
温度:唯一不能「乘个系数」的换算
长度、重量都是线性变换(y = kx),温度不是 —— 它有一个零点偏移:
°F = °C × 9/5 + 32
K = °C + 273.15
漏掉 +32 或 +273.15,换算结果就整体偏了。这类错误在代码里很常见,因为写的时候觉得「换算不就是乘一下」。
还有一个容易忽略的:温度差的换算不需要偏移。从 10°C 升到 20°C,温差 10°C = 18°F,不是 50°F。涉及「升温多少度」时,只用比例系数。
盎司:重量还是容积
同一个词在两个体系里是两种量:
| 单位 | 类别 | 换算 |
|---|---|---|
| 盎司(oz) | 重量 | 1 oz ≈ 28.35 g |
| 液量盎司(fl oz,美制) | 容积 | 1 fl oz ≈ 29.57 mL |
| 液量盎司(fl oz,英制) | 容积 | 1 fl oz ≈ 28.41 mL |
美制和英制还在一堆单位上分家:加仑(3.785 L vs 4.546 L)、品脱、夸脱。看到英文配方里的「1 gallon」时,先确认是哪国的。
英制单位的隐形陷阱
- 磅既是重量也是货币(£)。1 lb ≈ 453.6 g,但「5 pounds」在伦敦可能指 5 英镑
- 英尺和英寸混写:5'11" 是 5 英尺 11 英寸,不是 5.11 英尺(那是 5 英尺 1.3 英寸)
- 码(yard)在美式橄榄球和布料里都是 0.9144 m,但「一码布」的实际幅宽另有说法
- 市制:中国的「斤」是 500 g,「两」是 50 g,和台湾、香港的斤不同(港斤约 605 g)
换算后保留几位
这取决于用途:
| 场景 | 建议 |
|---|---|
| 工程计算 | 保留原精度,最后一步再舍入 |
| 生活换算(菜谱、身高体重) | 1~2 位小数 |
| 展示给用户 | 按有效数字,不按小数位 |
「1 英寸 = 2.54 厘米」是定义值,精确;「1 英里 = 1.609 公里」是近似(实际 1.609344)。连着换算多次时,近似值会累积误差 —— 比如英寸 → 厘米 → 米 → 英尺,来回几次就能差出几毫米。
需要批量换算时,单位换算覆盖长度、重量、面积、体积、温度、速度等常见类别,一次输入多单位同时出结果;要批量处理数字(补零、截断、加千分位),用数字处理;涉及二进制单位的(KiB / MiB),进制转换能直接看到 1024 的幂次。
一句话总结
换算错的三种典型原因:单位同名不同义(GB/GiB、oz/fl oz)、公式少了偏移(温度)、美制与英制混用(加仑)。 换算前先确认「这是哪套体系里的哪个量」,比记换算系数重要。