硬盘容量疑问
以一个容量为 1T 的硬盘为例,在 Windows 系统下,容量显示只有 931G,不应该是 1024GB 吗?这到底是为什么呢?是商家在欺骗消费者吗?
按照之前内存大小的计算逻辑(1MB = 1024KB):
1T = 1024GB = 1024 * 1024^3B = 1,099,511,627,776
字节
不等于 1,000,202,563,584
字节
国际单位制
要说清这个问题,得从国际单位制说起。按惯例,表示大数的前缀以“a”结尾;表示小数的前缀以“o”结尾。国际单位制前缀可参考图片:
国际单位制自诞生以来,不断在扩展最大和最小数字的计数单位,以应对科学进步和数据存储量与日俱增的需求。
最新加入国际单位制大家族的 4 个新前缀分别是 ronna、quetta、ronto 和 quecto。其中,ronna 表示数字后有 27 个零,quetta 表示数字后有 30 个零。ronto 和 quecto 则用于表示极小的数字,分别表示小数点后有 26 个零和 29 个零。
1T 硬盘应该有多少字节
在信息技术领域,使用情况有所不同。对于内部存储器,并没有遵循国际单位制的要求,采用的是国际电工委员会 IEC 60027-2 标准;而外部存储器容量标记则遵循了国际单位制的要求。
-
内部存储器:
- 高速缓存:2KB = 2 * 1024 KB
- 内存:4GB = 4 * 1024 ^ 3 Byte
-
外部存储器:
- U 盘:4GB = 4 * 1000 ^ 3 Byte
- 硬盘:1TB = 1 * 1000 ^ 4 Byte
由于计算机芯片的引脚只有高电平或者低电平两种状态,CPU 的运算器采用二进制的计数方式,例如 64 位地址,可以表示 2 的 64 次方字节。CPU 计算会直接同高速缓存和内存进行操作,所以内部存储器使用二进制则会更加方便。
而外部存储器,离 CPU 距离较远,不会由 CPU 直接操作,没有必要采用 1024 为底数的计算方法,而是采用 1000 为底数的计算方式。
硬盘容量标记 1TB,就是 1 * 1000 ^ 4 字节,和 1,000,202,563,584 字节 相差不多。
为什么 1T 硬盘只有 931G
按照前面的换算逻辑,对于外部存储器,1,000,202,563,584 字节 应该是等于 1000 GB,为什么 Windows 电脑显示只有 931G 呢?
这其实是 Windows 系统的一个 BUG,在 Windows 系统中,页面显示使用的是 MB、GB 等国际单位制十进制的前缀,而实际进行单位转换则使用的是 1024 的方式进行计算的。
1,000,202,563,584 ➗ 1024 ➗ 1024 ➗ 1024 ≈ 931.51GB
而在 Mac 系统上面是不存在这个问题的,他的展示和计算都是用的是国际单位制十进制前缀表示的。
推荐阅读: https://www.zhihu.com/question/288115796/answer/523089229