为什么1TB固态硬盘却显示931GB?
在pdd上遇到这样的评论
售后支持
根据国外硬盘厂商(Seagate)希捷的售后支持中解释 为什么我的硬盘报告容量低于驱动器标签上的指示?
用户在Windows资源管理器或者较老版本的Mac操作系统上显示的硬盘硬盘容量却比商品详情页面说明的要小
一句话说明白,硬盘厂商规定的1TB的单位是 1000 1000 1000字节,而操作系统是二进制计数单位是 2 10 2^{10} 210字节
其实真正的原因是历史的问题 硬盘厂商使用的Tera单位(十进制),而计算机使用的tebi单位(二进制)
我们拿着硬盘厂商的1 Tera (1TB)字节去念成PC制造商的1tebi(1TiB)是错误的
拿着二进制去对十进制,就造成了这个问题,本身厂商和计算机谁都没有错,错的是单位不同
硬盘厂商用的是正经国际单位(SI) 现实度量系统(十进制), 而计算机制造商(软硬件)使用的(电子系统)二进制,让二进制的世界去表示10进制,确实强人所难
似乎让人想起了千兆网络却只有百兆网速
网络带宽是1000M,为什么实际下载最高只有125M
这一次搞通信的和搞计算机的进制统一了,但是大小吗,又不对了
截取reddit回复
单位混淆的原因在于,早期计算机行业将公制前缀如“千”和“兆”用于表示 2 的幂次。因此,在公制中,“千”是 1000,而在“计算机技术”中则是 1024。一个兆字节(MB)等于 1024 × 1024 = 1,048,576 字节,一个千兆字节(GB)是 1,073,741,824 字节,而一个太字节(TB)是 1,099,511,627,776 字节。操作系统通常遵循这种系统,因此一个 1 MB 的文件实际上是 1,048,576 字节长。
另一方面,硬盘行业更倾向于使用公制的含义,因为提供 1,000,000,000,000 字节(即 1 TB)更具成本效益,这样你就可以少交付近 10% 的空间!
原因
硬盘制造商以十进制(基数10)容量来市场推广硬盘。
在十进制表示法中,
一个兆字节(MB)等于1,000,000字节,
一个千兆字节(GB)等于1,000,000,000字节,
一个太字节(TB)等于1,000,000,000,000字节。
程序如FDISK、系统BIOS、Windows和旧版本的macOS使用二进制(基数2)计数系统。在二进制计数系统中,
一个K字节 ( 1 K B = 1024 B y t e s ) (1KB=1024Bytes) (1KB=1024Bytes)
一个兆字节等于1,048,576字节
( 1 M B = 1024 K B = 2 10 B y t e s × 2 10 B y t e s ) = 1048576 B y t e s (1MB = 1024KB=2^{10}Bytes\times 2^{10}Bytes) = 1048576Bytes (1MB=1024KB=210Bytes×210Bytes)=1048576Bytes
一个千兆字节等于1,073,741,824字节
( 1 G B = 1024 M B = 2 10 × 2 10 × 2 10 = 1073741824 M B y t e s ) (1GB=1024MB = 2^{10}\times 2^{10}\times 2^{10}=1073741824 MBytes) (1GB=1024MB=210×210×210=1073741824MBytes)
一个太字节等于1,099,511,627,776字节。
1 T B = 1024 G B = 2 10 × 2 10 × 2 10 × 2 10 1TB = 1024GB=2^{10}\times2^{10}\times2^{10}\times2^{10} 1TB=1024GB=210×210×210×210
容量计算公式
- 十进制容量 / 1,048,576 = 二进制MB容量
- 十进制容量 / 1,073,741,824 = 二进制GB容量
- 十进制容量 / 1,099,511,627,776 = 二进制TB容量
示例:
一个500 GB的硬盘大约为500,000,000,000字节(500 x 1,000,000,000)。 当使用GB的二进制计算时,(500,000,000,000 / 1,073,741,824)这个500 GB将显示为465 GB。 这就是为什么Windows会将500 GB的硬盘显示为465 GB的原因。
一个5 TB的硬盘大约为5,000,000,000,000字节(5 x 1,000,000,000,000)。 当使用TB的二进制计算时,(5,000,000,000,000 / 1,099,511,627,776)这个5 TB将显示为4.54 TB。 这就是为什么Windows会将5 TB的硬盘显示为4.54 TB的原因。
下表显示了硬盘可能报告的近似数字示例。
Capacity on product (Decimal) | Mac OS X Output (Decimal) | Windows Output (Binary) |
---|---|---|
500 GB | 500 GB | 465 GB |
1 TB (1,000 GB) | 1 TB (1,000 GB) | 931 GB |
2 TB (2,000 GB) | 2 TB (2,000 GB) | 1.81 TB |
3 TB (3,000 GB) | 3 TB (3,000 GB) | 2.72 TB |
4 TB (4,000 GB) | 4 TB (4,000 GB) | 3.63 TB |
5 TB (5,000 GB) | 5 TB (5,000 GB) | 4.54 TB |
6 TB (6,000 GB) | 6 TB (6,000 GB) | 5.45 TB |
8 TB (8,000 GB) | 8 TB (8,000 GB) | 7.27 TB |
10 TB (10,000 GB) | 10 TB (10,000 GB) | 9.09 TB |
12 TB (12,000 GB) | 12 TB (12,000 GB) | 10.91 TB |
14 TB (14,000 GB) | 14 TB (14,000 GB) | 12.73 TB |
16 TB (16,000 GB) | 16 TB (16,000 GB) | 14.55 TB |
18 TB (18,000 GB) | 18 TB (18,000 GB) | 16.37 TB |
20 TB (20,000 GB) | 20 TB (20,000 GB) | 18.18 TB |
22TB (22,000 GB) | 22TB (22,000 GB) | 20.00 TB |
24TB (24,000 GB) | 24TB (24,000 GB) | 21.82 TB |
下图是一个在Windows中显示的16 TB硬盘的示例
请注意,16 TB(16,000,000,000,000字节)硬盘的容量在十进制值(红圈)和二进制值(蓝圈)中都显示了。
简单来说,十进制和二进制表示的是相同的存储容量。比如说,你想测量从点A到点B的距离。从A到B的距离是1公里或0.621英里。尽管是相同的距离,但由于测量方式不同,报告的结果也有所不同。
有关此主题的更多信息,请参阅文档ID:194563 和国家标准与技术研究所网站。
参考链接:
-
美国国家标准与技术研究所:http://physics.nist.gov/cuu/Units/binary.html
-
Seagate Support:https://www.seagate.com/support/kb/why-does-my-hard-drive-report-less-capacity-than-indicated-on-the-drives-label-172191en/
NIST解释
根据美国国家标准技术研究所对国际单位系统的解释
二进制倍数前缀
1998年12月,国际电工委员会(IEC),作为全球电工技术领域的主要国际标准化组织,批准了一项IEC国际标准,用于数据处理和数据传输领域的二进制倍数前缀的名称和符号。这些前缀如下:
Prefixes for binary multiples
Factor | Name | Symbol | Origin | Derivation |
---|---|---|---|---|
2 10 2^{10} 210 | kibi | Ki | kilobinary: ( 2 10 ) 1 (2^{10})^1 (210)1 | kilo: ( 1 0 3 ) 1 (10^{3})^1 (103)1 |
2 20 2^{20} 220 | mebi | Mi | megabinary: ( 2 10 ) 2 (2^{10})^2 (210)2 | mega: ( 1 0 3 ) 2 (10^{3})^2 (103)2 |
2 30 2^{30} 230 | gibi | Gi | gigabinary: ( 2 10 ) 3 (2^{10})^3 (210)3 | giga: ( 1 0 3 ) 3 (10^{3})^3 (103)3 |
2 40 2^{40} 240 | tebi | Ti | terabinary: ( 2 10 ) 4 (2^{10})^4 (210)4 | tera: ( 1 0 3 ) 4 (10^{3})^4 (103)4 |
2 50 2^{50} 250 | pebi | Pi | petabinary: ( 2 10 ) 5 (2^{10})^5 (210)5 | peta: ( 1 0 3 ) 5 (10^{3})^5 (103)5 |
2 60 2^{60} 260 | exbi | Ei | exabinary: ( 2 10 ) 6 (2^{10})^6 (210)6 | exa: ( 1 0 3 ) 6 (10^{3})^6 (103)6 |
Examples and comparisons with SI prefixes | |
---|---|
one kibibit | 1 Kibit = 210 bit = 1024 bit |
one kilobit | 1 kbit = 103 bit = 1000 bit |
one byte 字节毫无疑问没有争议(2种单位) | 1 B = 23 bit = 8 bit |
one mebibyte | 1 MiB = 220 B = 1 048 576 B |
one megabyte | 1 MB = 106 B = 1 000 000 B |
one gibibyte (1GB) | 1 GiB = 230 B = 1 073 741 824 B |
one gigabyte | 1 GB = 109 B = 1 000 000 000 B |
该建议在英语中,二进制倍数前缀的第一个音节应与相应SI前缀的第一个音节发音相同,而第二个音节应发音为“bee”。
需要知道的是,新的二进制倍数前缀并不是国际单位制(SI)的一部分,国际单位制是现代公制系统。然而,为了方便理解和记忆,这些前缀源自SI前缀的正十次幂。如上表所示,每个新前缀的名称是从相应SI前缀的名称中保留前两个字母,再加上“bi”来表示“二进制”。类似地,每个新前缀的符号是从相应SI前缀的符号中添加字母“i”,以便记住“二进制”一词。(为了与其他二进制倍数前缀保持一致,符号Ki用于2^10,而不是ki。)
官方出版
这些二进制倍数前缀及其字母符号是由IEC技术委员会(TC)25,即数量与单位,和国际度量衡委员会(CIPM)以及电气和电子工程师协会(IEEE)的强力支持下开发的。它们首次被IEC采纳为
IEC国际标准IEC 60027-2:用于电气技术的字母符号 - 第2部分:电信和电子的修正案2。
修正案2的全文内容(出版日期为1999年1月)已在上表中反映,并包括有关发音的建议。随后,这些修订内容被纳入
IEC 60027-2的第二版,出版日期为2000年11月(第一版出版于1972年)。
该修订标准的完整引用为IEC 60027-2,第二版,2000年11月,电气技术中使用的字母符号 - 第2部分:电信和电子。
历史背景
曾几何时,计算机专业人员注意到 ( 2 10 ) (2^{10}) (210)(1024)与1000非常接近,因此开始使用SI前缀“千”(kilo)来表示1024。这种用法在过去的十几年中屡试不爽,因为每个谈论千字节(KByte)的人都知道这个术语隐含着1024字节。然而,几乎一夜之间,购买计算机的人数激增,计算机专业人士需要与物理学家、工程师甚至普通人交流,而大多数人都知道千米是1000米,千克是1000克。
随着数据存储容量达到吉字节(gigabytes)和甚至太字节(terabytes)变得实用,存储设备的构建并不是基于二进制树,这意味着在许多实际情况下,二进制算术不如十进制算术方便。因此,如今“每个人”都不了解什么是兆字节(megabyte)。
在讨论计算机内存时,大多数PC制造商使用兆字节来表示 ( 2 20 ) (2^{20}) (220)(1,048,576)字节,但(存储商)计算机存储设备制造商通常使用该术语表示1000000字节。
一些局域网设计者将每秒兆比特(megabit per second)用于表示 ( 2 20 ) ( 1 , 048 , 576 b i t / s ) (2^{20})(1,048,576 bit/s) (220)(1,048,576bit/s),但所有电信工程师则使用它表示 ( 1 0 6 ) ( 1 , 000 , 000 b i t / s ) (10^6)(1,000,000 bit/s) (106)(1,000,000bit/s)。
如果对兆字节的两个定义还不够,第三个兆字节为1,024,000字节,则是用于格式化常见的90毫米(3.5英寸)“1.44 MB”软盘的兆字节。混淆是真实存在的,标准和实施系统之间的潜在不兼容性也同样存在。
面对这一现实,IEEE标准委员会决定,IEEE标准将使用国际公认的SI前缀的常规定义。兆(mega)将意味着1,000,000,除非在具体情况下明确指出可以使用基于二进制的定义,直到适当的标准机构采用二进制倍数的前缀为止。
硬盘制造商在他们的网页和磁盘包装上会说明他们使用的 TB 等定义。Windows 也会在磁盘属性中显示容量,以字节和 GB 的形式展示。
国际单位制(SI)和之前的公制系统使用这些前缀的时间比计算机更长。
千字节(kilo)从 1795 年开始使用,
兆字节(mega)从 1873 年开始使用,
千兆字节(giga)和太字节(tera)从 1960 年开始使用。
参考链接:
公制(SI)前缀:https://www.nist.gov/pml/owm/metric-si-prefixes
https://kb.wisc.edu/researchdata/page.php?id=101840