对于后缀为字节单位有两种表示方式
以十进制为单位:
单位缩写值kilobytekB(小写k)1000megabyteMB1000^2gigabyteGB1000^3terabyteTB1000^4
以二进制为单位:
单位缩写值kibibyteKiB(或者KB)1024mebibyteMiB1024^2gibibyteGiB1024^3tebibyteTiB1024^4
对于后缀为bit的单位只有二进制的形式
单位缩写值kibibitKibit1024mebibitMibit1024^2gibibitGibit1024^3tebibitTibit1024^4
以上单位来自国际电子委员会定义 https://web.archive.org/web/20090403051731/http://www.iec.ch/zone/si/si_bytes.htm
换算关系
1 KiB = 1024 Kibit 1 KiB = 1.024 kB
容易混淆
在windows电脑中,使用的KB实际上是kibibyte、MB实际上是mebibyte,和上述的缩写单位的值并不对应,所以windows忽略了国际电子委员会的规范。 https://devblogs.microsoft.com/oldnewthing/20090611-00/?p=17933 https://answers.microsoft.com/en-us/windows/forum/all/windows-10-file-explorer-unit-confusion/fed69f40-c448-4028-a011-cb0780215a63 在Linux电脑中,通常要规范一些,在表示文件大小时直接用K、M、G、T表示,省略iB。若有易混淆的地方一般不会省略,会标注全部的缩写。 购买硬盘时,硬盘厂家一般使用MB和GB标注,和上述的缩写单位是一致的。厂家有时也会说明,解释磁盘中1MB不等于windows的1MB。而购买内存时,一般标注的MB和GB又表示MiB和GiB ,难道此处是为了迎合windows而不规范标注的?容易混淆的历史原因不知从何说起,但现如今windows电脑还存在这些问题,微软难辞其咎。