GiB(Gibibyte)和 GB(Gigabyte)是两种不同的单位,核心区别在于计数基数不同:
- GB(Gigabyte)基于十进制(SI标准):1 GB = 10⁹ 字节 = 1,000,000,000 字节
- GiB(Gibibyte)基于二进制(IEC标准):1 GiB = 2³⁰ 字节 = 1,073,741,824 字节
✅ 简单换算:
1 GiB ≈ 1.074 GB(即 GiB 比 GB 大约 7.4%)
🔍 为什么系统盘(如 Windows、Linux 的磁盘管理器、df、lsblk 等)常用 GiB?
根本原因在于:计算机底层以二进制寻址和管理存储空间。
| 场景 | 原因说明 |
|---|---|
| ✅ 操作系统内核与文件系统 | 内存地址、扇区(sector)、簇(cluster)、页(page)等均按 2 的幂次组织(如 512B、4KB、64KB)。分配和计算容量时天然使用 2³⁰,而非 10⁹。例如: • NTFS/EXT4 文件系统统计空闲块时,直接用 总块数 × 块大小(块大小为 2ⁿ 字节);• Linux df -h 默认用 1024 进制(即 KiB/MiB/GiB),df -H 才用 1000 进制(KB/MB/GB)。 |
| ✅ 避免歧义与误差 | 硬盘厂商标称“1 TB SSD” = 10¹² B(十进制),但系统识别为 10¹² ÷ 2⁴⁰ ≈ 0.909 TiB(或 ≈ 931 GiB)。若系统也用 GB(10⁹),则显示“931 GB”,看似一致,实则单位混用——表面数字相同,但‘GB’含义已偷换,易引发用户困惑(“我买的1TB硬盘怎么只剩931GB?”)。采用 GiB 明确表示“这是二进制单位”,提升技术准确性。 |
| ✅ 遵循国际标准(IEC 60027-2) | 自 1998 年起,IEC 和 IEEE 明确推荐: • 十进制单位:KB/MB/GB/TB(10³, 10⁶, 10⁹, 10¹²) • 二进制单位:KiB/MiB/GiB/TiB(2¹⁰, 2²⁰, 2³⁰, 2⁴⁰) 现代操作系统(Linux、macOS、Windows 10/11 文件资源管理器的“属性”窗口)均已逐步采纳此规范。⚠️ 注:Windows 资源管理器仍显示“GB”,但实际计算逻辑是二进制(即它显示的“100 GB”其实是 100 × 2³⁰ B),属于历史兼容性妥协;而专业工具(如 diskpart、PowerShell Get-Volume、Linux lsblk -b)更倾向明确使用 GiB。 |
📊 实际对比示例(1 TB 硬盘)
| 视角 | 标称/显示值 | 实际字节数 | 换算依据 |
|---|---|---|---|
| 硬盘厂商(销售标签) | 1 TB | 1,000,000,000,000 B | 10¹² (TB) |
| Windows 资源管理器(显示为“GB”) | ≈ 931.3 GB | 同上 → 931.3 × 2³⁰ ≈ 999.9 GB(十进制) | ❗名义用 GB,实为 GiB 计算(行业惯例) |
Linux df -h |
≈ 931 GiB | 1,000,000,000,000 ÷ 2³⁰ ≈ 931.32 GiB | ✅ 明确标注 GiB,单位准确 |
Linux df -H |
≈ 1.0 TB | 1,000,000,000,000 ÷ 10¹² = 1.0 TB | 十进制,贴近厂商标称 |
✅ 总结
| 项目 | GB | GiB |
|---|---|---|
| 定义 | 10⁹ 字节(1,000,000,000) | 2³⁰ 字节(1,073,741,824) |
| 适用场景 | 存储设备厂商标称、网络带宽、部分消费级软件 | 操作系统内存/磁盘管理、开发工具、内核日志、符合 IEC 标准的专业环境 |
| 系统盘用 GiB 的原因 | ✔ 准确反映二进制寻址本质 ✔ 避免单位混淆,增强技术严谨性 ✔ 符合现代标准(IEC/ISO),利于跨平台一致性 |
💡 小贴士:在阅读磁盘空间时,看到「GiB」就等价于“计算机原生理解的 GB”;看到厂商写的「GB/TB」,记得它比系统显示的「GiB/TiB」大约 7.4% / 10% —— 这不是缩水,而是单位不同导致的正常现象。
需要我帮你写一个 Python 脚本自动转换 GB ↔ GiB,或解释 TiB/GB 差异吗? 😊
云知道CLOUD