你花几百块买了一块2TB的NVMe固态硬盘,插上Windows电脑,打开“此电脑”一看,只有大约1.8TB。一个文件还没存,9%的容量就先没了。按存储的价格算,这笔钱花得让人心疼。
硬盘没坏,厂商也没有偷工减料少焊几颗存储颗粒。你和这块新硬盘,只是同时成了数学和历史的受害者。
![]()
两种“TB”,两套算法
包装盒上写的容量和Windows显示的容量对不上,根源在于“怎么数”。
存储厂商用的是十进制定义的TB,遵循公制,也就是国际单位制(SI)。在这套体系里,“tera”就是一万亿,即1,000,000,000,000字节。
Windows则像计算机一样按二进制数数。这意味着我们习惯的那种整十的幂次,在二进制里不会“自然”出现,Windows只能退而求其次,选最接近的2的幂。
具体到TB这个量级,2的40次方正好是1,099,511,627,776字节,略低于1.1万亿字节。而2的39次方大约是550GB,2的41次方是2.2TB,2的40次方已经是最接近的选择了。
国际电工委员会(IEC)在上世纪90年代末试图解决这个问题,推出了kibibyte(KiB)、mebibyte(MiB)、gibibyte(GiB)、tebibyte(TiB)等新单位,用来区分十进制TB和最接近的二进制对应值。但这套新命名并没有被广泛采用。
所以,一块1TB硬盘实际有10的12次方字节的存储空间,Windows在后台仍然做二进制运算。在Windows看来,1TB等于1,024GB而不是1,000GB。换算下来,Windows会显示这块1TB硬盘只有大约931GB可用。
盘越大,缺口越大
硬盘容量越大,这个问题越严重。
一个二进制KB(即KiB)比十进制KB大约多2.4%,因为1024÷1000等于1.024。每上升一个数量级,这个差距就会累积:1000×1000×1000等于10亿,而1024×1024×1024等于10.73亿。
这就是为什么不同容量的硬盘在Windows里显示的数字是这样的:
- 500GB硬盘显示约465GB
- 1TB硬盘显示约931GB
- 2TB硬盘显示1.81TB
- 4TB硬盘显示3.63TB
- 8TB硬盘显示7.27TB
买得越大,“丢”得越多。
不是所有系统都这么算
各家操作系统对这个差异的处理方式并不一致。
macOS在2009年就切换到了十进制单位,也就是说,你买一块1TB硬盘,macOS会老老实实报告为1TB。Linux则比较混杂,一些桌面文件管理器用十进制,而很多命令行工具用二进制。部分Linux工具还会正确地把二进制单位标注为GiB或TiB,这在Windows里通常见不到。Windows 11则继续用二进制运算,却挂着十进制的标签。
存储厂商坚持十进制,是因为公制前缀历来就代表10的幂次,数起来非常方便。而且,数字更大对广告也更有利。
Windows、存储行业和消费者之间的这种张力,在2000年代中期确实引发过几起诉讼。这些诉讼大多以金额不大的和解告终,厂商随后修改了细则条款,把自己的TB定义写了进去。
为什么不干脆改掉
既然这么乱,微软为什么不直接把标签改对?问题在于,没有任何一种方案能在不引入新麻烦的前提下解决困惑。
比如,Windows对GB的二进制定义是全局通用的,内存(RAM)和显存(VRAM)也不例外。如果微软把整个系统切换到十进制的GB和TB,内存就会显得不对劲——16GB内存会突然被报告成17.2GB。这个17.2来自16GB乘以(1024³/1000³)。
换成二进制术语呢?用gibibyte代替gigabyte、tebibyte代替terabyte,结果只会让所有人发懵:“tebibyte到底是个什么东西?”
也有人提出,干脆两个单位都叫TB,存储用十进制、内存用二进制。macOS就是这么做的。但在Windows上,几十年的使用惯例已经形成,这么做带来的困惑可能比它解决的问题还多。
两种数字其实都没错,只是两套略有差异的体系共用了同一套术语。而且,TB和TiB的差异并不是你实际可用空间少于包装标注的唯一原因。格式化之后还要算上文件系统的开销。在系统盘上,恢复分区和EFI分区会占去一部分空间,预装电脑往往还塞了一堆预装软件,在你还没开始用之前就已经占掉好几个GB。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.