为什么硬盘1G等于1024M、1T等于1024G而不是1000的整数倍?

硬盘厂家和操作系统用的是两套算法。厂家按1000为单位算,500G硬盘就是500x1000M。但操作系统是二进制算法,拿500x1000再除以1024,结果488G左右,所以你看到500G硬盘实际只显示大概488G。

这是硬盘初期留下的历史问题,当时纯粹为了计算方便,容量也小,两种算法差别不大。可随着硬盘越来越大,差距就越来越明显了,1TB的盘在电脑里只显示930G左右,差了70G。很多人觉得厂家偷工减料,但这只是行业习惯,再说按1024算也确实麻烦。

这跟计算机语言有关,机器只认0和1,所以计算机里最终结果一定是2的n次方。在计算机领域,这些容量表示都是2的n次方倍,也就是1024倍。可硬盘厂家为了方便,都按1000倍来计算,这差距就这么来了。

在Windows系统里,1KB=1024Bytes叫KiBiBytes,1MB=1024x1024Bytes叫MeBiBytes,1GB=1024x1024x1024Bytes叫GiBiBytes,都是微软自己定的。可Linux系统和硬盘厂家用的是另一套,1K=1000Bytes叫KiloBytes,1M=1000000Bytes叫MegaBytes,1G=1000000000Bytes叫GigaBytes,你说乱不乱。

站在计算机角度看,硬盘1G不等于1000M是对的,因为计算机只认二进制,2的10次方是1024,按这个算最整齐。可硬盘厂商为了计算方便,一直按1000进制来算容量和标注,所以买到的硬盘在电脑里显示的总比标签少,这不是偷工减料,是换算方式不同。

这事儿得怪微软。其实按标准,1000B=1KB,1000KB=1MB,1000MB=1GB,1000GB=1TB才是对的。可微软硬要用1024进制,正确的叫法应该是1024B=1KiB,1024KiB=1MiB,1024MiB=1GiB,1024GiB=1TiB。

严格按国际标准来说,微软是错的。KiloBytes按SI标准应该是1KB=1000Bytes,1MB=1000KB,1GB=1000MB。而IEC标准里1KiB=1024B,1MiB=1024KiB,1GiB=1024MiB。现在Linux和MacOS已经改过来了,就微软还在Windows里把1KB定义成1024B,搞得KB和KiB全乱套了。

系统给不了你整数存储,但硬盘厂商可以!厂商是按1G=1000M来算的,你买500G硬盘,他们就算500x1000M。可到了电脑系统里,系统按1024进制重新一算,500G就变成465G了,这就是为啥你看到的容量总比标签上少。

因为2的10次方等于1024,这就是根本原因。计算机用二进制,比如10位二进制最大数就是2的10次方等于1024,跟1000最接近,所以就拿1024当计算单位了,不是什么故意为之。