微软为啥不使用1GB=1000MB的标准

现在计算机存储的最小单位是字节,无论是存储空间,还是文件尺寸,都由此表示。但是字节是一个非常小的单位,不便于弱小的人类观看和感受,于是就需要像其他大小不合适的物理量一样用前缀把单位前面的数字限制在一个舒服的范围(比如0.1?1000)。由于计算机内部采用万能的二进制,而2的10次方1024又非常接近1000,于是很自然的就采用了1k=1024这种换算方式,非常方便。这样就可以看到这个文件是105MB,那个分区还有281GB空间。(我没听说过这里还有国际标准单位的说法,如果一定说有,那么这种表示方法应该更"标准"。)可是硬盘厂商在描述自己产品容量时确没有采用这一方式,而是传统的1000进制,于是问题出现了。一块标称100GB的硬盘是100,000,000,000字节,换算成计算机内部的表示方法就只有93GB左右了,格式化后会更少一点。为了避免两种不同的换算方式带给消费者的困惑,Mac OS X和Linux开始陆续采用1000进制显示硬盘容量(注意是显示,也就是给人看的,实际上这个东西怎么换算和操作系统底层的使用一点关系都没有,如@pansz 提到的),这样消费者就可以在系统中看到和标称容量差不多一样大小的硬盘了。Surface应该也是为了避免消费者的困惑才改用这种方式的,毕竟硬件是自己出的,总被人问也麻烦,而且容量本来就小,这样显示可以多一点可用空间。至于桌面版Windows,就没有这种困境,因为自己不管硬件,有了问题也找不到自己,于是就沿用了从前的习俗。
■网友
内存和硬盘用两种单位制不觉得脑残么?
■网友
首先要纠正题主的说法,操作系统是不需要显示容量的,需要显示容量的是系统中的每个应用程序,系统层面仅仅是基于字节,而字节数永远是个确定值,把字节换算成 kb, Mb, Gb 那是应用程序自己做的。另外,linux中大多数应用程序同时支持两种计算方式,例如,ls,df,等命令行工具都支持两种。桌面程序诸如kde系列是以kib,mib,gib计算的,他们都基于1024,而有其他一些桌面应用以kb,mb,gb来计算,这个基于1000,两种计算方式在linux中都存在,linux世界里并没有明显的偏好,因为这个世界是自由的。至于微软的应用选择1024,苹果的应用选择1000,这纯粹是一种选择上的偏好。基于 1024 和基于 1000 的两种计算方式都是国际标准,都在国际标准中有相关的文档描述,所以无论选择哪种都是正确的。唯一需要注意的是,你最好保持一致。
■网友
为什么存储设备容量标识中 1G 等于 1000MB 而不是 1024MB? - 计算机
■网友
2的十次方是1024,二进制是编程的基础,厂商没有按1024机制是方便计算吧!
■网友
【微软为啥不使用1GB=1000MB的标准】 1GB=1000MB是奸商的标准。就像奸商的秤,实际9两的货物,在他秤上就显示1斤,他就收你1斤货物的钱。还不明白吗?


    推荐阅读