在计算机存储和内存的语境中,GiB 是 Gibibyte(二进制吉字节)的缩写,而 GB 通常指 Gigabyte(十进制吉字节)。
虽然在日常口语中人们经常混用这两个词,但在技术定义上,它们基于不同的计数系统,数值存在细微但重要的差异:
1. 核心定义与换算标准
-
GiB (Gibibyte)
- 标准来源:国际电工委员会(IEC)于 1998 年制定的标准。
- 计算基数:基于 2 的幂次方(二进制),这是计算机底层逻辑的基础。
- 换算公式:$1 text{ GiB} = 2^{30} text{ Bytes} = 1,073,741,824 text{ Bytes}$。
- 常见场景:操作系统(如 Windows、macOS、Linux)、内存(RAM)、以及大多数编程语言中的文件大小统计。当你看到"8GiB 内存”时,指的是操作系统实际识别到的精确容量。
-
GB (Gigabyte)
- 标准来源:国际单位制(SI)前缀“千兆”(Giga-)的通用用法。
- 计算基数:基于 10 的幂次方(十进制)。
- 换算公式:$1 text{ GB} = 10^9 text{ Bytes} = 1,000,000,000 text{ Bytes}$。
- 常见场景:硬盘/SSD/U盘等存储设备的厂商标称容量。硬盘制造商为了数字看起来更大,通常使用十进制标准来标注产品规格(例如标称 1TB 的硬盘,实际可用空间往往小于 1TiB)。
2. 数值差异对比
由于 $2^{30} > 10^9$,所以 1 GiB 比 1 GB 大约 7.37%。
| 单位 | 字节数 (Bytes) | 换算关系 |
|---|---|---|
| 1 GiB | 1,073,741,824 | $2^{30}$ |
| 1 GB | 1,000,000,000 | $10^9$ |
| 差值 | +73,741,824 | 约多 7.37% |
3. 为什么会有这种区别?(以你的"8GiB 内存”为例)
当硬件厂商制造一根 8GB 的内存条时,他们通常按照十进制标准生产,即这块内存包含 $8 times 10^9 = 8,000,000,000$ 个字节。
然而,当这根内存条插入电脑后,操作系统(Windows/Linux/macOS)是按照二进制逻辑去寻址的。它会这样计算:
$$ 8,000,000,000 div 1,073,741,824 approx 7.45 text{ GiB} $$
因此,你在任务管理器或系统信息里看到的往往是 7.45 GiB(或者接近 7.5 GiB),而不是 8 GiB。这并非内存坏了,而是计量单位不同造成的显示差异。
注意:在现代技术规范中,为了消除歧义,内存和操作系统严格使用 GiB,而存储设备厂商有时仍模糊地使用 GB(实际上按十进制算)。如果你看到严格的"8GiB",说明该描述非常严谨地指出了操作系统视角的二进制容量;如果只写"8GB",在内存语境下通常指代物理规格(十进制),在软件语境下可能指代操作系统读取的近似值。
总结
- GiB 是二进制单位($2^{30}$),用于内存和操作系统显示的准确容量。
- GB 是十进制单位($10^9$),常用于硬盘厂商的标称容量。
- 8GiB 内存意味着这块内存被操作系统识别为 $8 times 1073741824$ 字节。如果按十进制换算成 GB,它大约是 8.59 GB(如果是标称 8GB 的内存条,系统会显示约 7.45 GiB)。
CLOUD技术博