最近格式化 U 盘时,遇到一个困惑:明明包装上写着 32GB,为什么插到电脑里只剩下 28GB 多?
经过一番研究,发现不是 U 盘坏了,而是一个一直被我被忽略的知识点:厂商标注容量和操作系统显示容量,用的不是同一套计算方式。
一、厂商说的 GB,是十进制的 GB
存储设备厂商通常按照国际单位制来标注容量。
也就是说:
- 1 KB = 1000 B
- 1 MB = 1000 KB
- 1 GB = 1000 MB
- 所以 1 GB = 1,000,000,000 字节
按照这个算法,一个标称 32GB 的 U 盘,大约就是:
32 × 1,000,000,000 = 32,000,000,000 字节
这种算法并不是厂商自己乱编的。国际单位制里的 kilo、mega、giga 本来就是按照 10 的幂来定义的,比如 kilo 表示 1000,giga 表示 10⁹。NIST 对 SI 前缀的说明也是这个口径。
二、电脑显示容量时,常常按二进制来算
问题出在计算机世界里,很多东西天然围绕 2 的幂 运作。
在二进制体系下:
- 1 KiB = 1024 B
- 1 MiB = 1024 KiB
- 1 GiB = 1024 MiB
- 所以 1 GiB = 1,073,741,824 字节
IEC 专门提出过 KiB、MiB、GiB 这套“二进制前缀”,就是为了解决 KB、MB、GB 在十进制和二进制之间容易混淆的问题。NIST 也明确区分了 1 GB = 10⁹ 字节,而 1 GiB = 2³⁰ 字节。
但现实中,很多系统界面并不会严格显示 “GiB”,而是仍然写成 “GB”。于是用户看到的就是:包装上写 32GB,电脑里却显示 28GB 多。
三、32GB 为什么会变成大约 29GB?
我们可以直接算一下。
厂商说的 32GB 是:
32,000,000,000 字节
如果电脑按 1 GiB = 1,073,741,824 字节来换算:
32,000,000,000 ÷ 1,073,741,824 ≈ 29.8 GiB
也就是说,一个标称 32GB 的 U 盘,在电脑里显示成 约 29GB,本来就是正常现象。
如果你看到的是 28.6GB,也仍然常见。因为 U 盘除了这个“单位换算差异”之外,还可能有一部分空间被用于文件系统、固件、启动结构、地址表、坏块替换、备份区等。SanDisk 的支持说明中也提到,部分驱动器会有一部分总容量不可用于数据存储,原因包括固件、启动结构、地址表空间以及用于闪存错误时的备份数据等。
四、这是不是厂商在“玩文字游戏”?
可以说有一点“看起来更好看”的商业效果,但严格来说,它不完全是欺骗。
厂商使用的是十进制算法,这符合国际单位制,也更容易对普通消费者解释:
1GB = 10 亿字节
而计算机系统长期使用二进制算法,是因为计算机底层就是由 0 和 1 组成的,很多存储、寻址和内存管理都天然和 2 的幂相关。
所以真正的问题不是“谁错了”,而是:
同一个 GB,在厂商、操作系统、用户理解中,可能指的不是同一个东西。
这就是混乱的来源。
五、不同系统显示方式也不完全一样
有些系统后来为了减少这种混乱,已经改成更接近厂商标注的十进制显示方式。比如 Apple 的官方说明中提到,较新的 iOS 和 macOS 会用十进制方式报告存储容量,也就是 1GB = 10 亿字节;而部分较旧系统或应用则可能使用二进制方式。
所以同一块存储设备,在不同系统里看到的容量,也可能略有差异。
六、如何判断自己的 U 盘是否正常?
可以用一个简单标准:
| 标称容量 | 电脑里常见显示 |
|---|---|
| 16GB | 约 14GB 多 |
| 32GB | 约 28GB~29GB 多 |
| 64GB | 约 57GB~59GB 多 |
| 128GB | 约 115GB~119GB 多 |
所以,如果一个 32GB U 盘显示 28.6GB,通常属于正常范围。但如果只显示几 GB,或者容量明显异常,那就可能是分区表没恢复好、启动盘残留分区、U 盘故障,甚至是假容量盘。
32GB 的 U 盘在电脑里显示 28GB 多,不是容量凭空消失了,而是厂商用十进制标注,操作系统常按二进制换算,再加上文件系统和闪存管理占用了一部分空间。
这个小现象背后,其实藏着一个很典型的计算机常识:我们平时看到的“容量”,并不只是物理空间本身,还取决于谁在计算、用什么单位计算、系统如何展示。