最近格式化 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 多,不是容量凭空消失了,而是厂商用十进制标注,操作系统常按二进制换算,再加上文件系统和闪存管理占用了一部分空间。

这个小现象背后,其实藏着一个很典型的计算机常识:我们平时看到的“容量”,并不只是物理空间本身,还取决于谁在计算、用什么单位计算、系统如何展示。