直接给结论:不相等。
在内存、硬盘、闪存等存储介质领域,4GiB ≠ 4GB。这是一个非常经典且容易让人“踩坑”的概念差异,主要源于二进制(Binary)和十进制(Decimal)两套不同的计数体系。
1. 核心区别:基数不同
-
GB (Gigabyte):通常指十进制单位。
- 前缀 "Giga" 代表 $10^9$。
- 1 GB = $1,000,000,000$ Bytes = $10^9$ Bytes。
- 这是国际电工委员会(IEC)早期推荐用于硬盘、U盘、SD卡等存储设备的标准,也是运营商和网络带宽常用的标准。
-
GiB (Gibibyte):指二进制单位。
- 前缀 "Gibi" 是 IEC 为了区分而专门创造的词根,代表 $2^{30}$。
- 1 GiB = $2^{30}$ Bytes = $1,073,741,824$ Bytes。
- 这是操作系统(Windows, Linux, macOS)、内存控制器、以及传统计算机体系结构中实际使用的单位。
2. 换算关系与数值对比
我们可以通过数学公式来精确换算:
$$1 text{ GiB} = 2^{30} text{ Bytes} approx 1.073741824 times 10^9 text{ Bytes}$$
$$1 text{ GB} = 10^9 text{ Bytes}$$
所以:
$$1 text{ GiB} approx 1.074 text{ GB}$$
反过来:
$$1 text{ GB} approx 0.931 text{ GiB}$$
具体到 4GiB 的情况:
- 4 GiB = $4 times 1,073,741,824$ Bytes = 4,294,967,296 Bytes
- 4 GB = $4 times 1,000,000,000$ Bytes = 4,000,000,000 Bytes
差异: 4GiB 比 4GB 多了约 295 MB 的真实字节数。
3. 为什么会有这种混淆?
这背后有一段历史纠葛:
- 早期惯例:在计算机发展早期,厂商和软件开发者都习惯用 $1024$ 作为进位单位(因为计算机底层是二进制)。当时大家把 $2^{30}$ 也叫做 "GB",导致术语混用。
- 标准化运动:为了消除歧义,国际电工委员会(IEC)在 1998 年引入了新的二进制前缀:KiB, MiB, GiB, TiB…
- KiB ($2^{10}$) vs KB ($10^3$)
- MiB ($2^{20}$) vs MB ($10^6$)
- GiB ($2^{30}$) vs GB ($10^9$)
然而,市场惯性太大:
- 硬件厂商(如硬盘、SSD、内存条包装):为了数字看起来更大、更“划算”,普遍使用十进制 GB。所以你买一根标称“4GB”的内存条,它实际上就是 4GiB 的物理容量。
- 操作系统(尤其是 Windows):依然沿用传统的二进制计算方式显示容量。因此,当你安装了一根标称 4GB 的内存后,Windows 任务管理器里显示的可用内存通常是 3.95 GiB 左右(部分被硬件保留或系统占用)。
4. 在云计算和服务器场景下的注意事项
作为国内云服务商的用户,你在选购云服务器实例时需要注意以下几点:
-
内存规格标注:
阿里云、腾讯云、华为云等厂商在产品详情页标注的“4GB 内存”,指的是物理内存容量,即 4GiB。你不需要担心他们少给你内存,但也不要误以为操作系统会显示满打满算的 4.00 GB。 -
磁盘空间标注:
云盘(如 ESSD、SSD)标注的“100GB 存储空间”,通常是指十进制的 100GB(即 $10^{11}$ Bytes)。但在操作系统中格式化后,你看到的容量会是:
$$100 text{ GB} div 1.074 approx 93.1 text{ GiB}$$
这是正常现象,不是云厂商偷容量。 -
网络带宽:
带宽(如 5Mbps, 100Mbps)使用的是十进制 Mbps(Megabits per second),而下载速度通常以 Byte/s 为单位,且涉及进制转换。这也是另一个常见误区,但与本题无关,略过。
5. 快速换算表
| 单位 | 定义 | 字节数 (Bytes) | 近似值 |
|---|---|---|---|
| 1 KiB | $2^{10}$ | 1,024 | – |
| 1 KB | $10^3$ | 1,000 | 0.977 KiB |
| 1 MiB | $2^{20}$ | 1,048,576 | – |
| 1 MB | $10^6$ | 1,000,000 | 0.954 MiB |
| 1 GiB | $2^{30}$ | 1,073,741,824 | – |
| 1 GB | $10^9$ | 1,000,000,000 | 0.931 GiB |
总结
- 4GiB = 4,294,967,296 Bytes
- 4GB = 4,000,000,000 Bytes
- 4GiB > 4GB,大约大 7.4%。
在日常交流和技术文档中,如果看到“4GB 内存”,默认理解为 4GiB 的物理容量;如果看到操作系统报告“剩余 3.95 GB 内存”,那其实是 3.95 GiB,属于正常现象。
建议在今后的技术写作或配置单中,严格区分 GiB(二进制)和 GB(十进制),以避免沟通误差。
云技术博客