Ubuntu上的应用程序使用哪些文件大小单位?
我注意到不同的应用程序使用不同的单元,或者它们意味着不同的东西。
例如,我遇到过kB
, KB
, KiB
, Kb
和K
每个单位代表多少字节?
如果这些单元有不同的定义,哪些应用程序使用哪些?
介绍:
电子计算机中的数据以各种方式存储和传输,但它们总是被解释为二进制值序列,0或1.一个二进制值称为位。 8位称为八位位组或字节。 在此基础上达成共识。
一位表示为b
,一个字节表示为B
在这方面有共识,如果你发现一个破坏这个约定的应用程序,那肯定是一个错误或错误。 人们经常混淆两者,但应用程序开发人员和制造商总体上并没有。
一旦你进入更大的单位,有两种思想流派,遗憾的是这意味着没有达成共识。 不同的操作系统和不同的应用属于一种思想流派或另一种思想流派。
Ubuntu的单位政策:
Ubuntu有一个已发布的单位政策 ,它定义了这样的单位。
第一组单位是1024的倍数。(为什么1024?因为1024是2的10的幂,这可以使程序员的生活更轻松。)这套单位称为二进制单位或IEC前缀,符合IEC标准定义了它们:
- 一个kibibyte :
1KiB
= 1024字节(注意大写字母 K) - 一个mebibyte :
1MiB
=1024KiB
= 1048576字节 - 一个gibibyte :
1GiB
=1024MiB
=1048576KiB
= 1073741824字节
第二组单位是1000的倍数。这与SI系统中常用的单位更加一致,例如米,升和克。 一公斤是1000克; 以同样的方式,千字节是1000字节。 这组单位称为十进制单位或SI前缀。
- 一千字节:
1kB
= 1000字节(注意小写k) - 1兆字节 :
1MB
=1000kB
= 1000000字节 - 1千兆字节 :
1GB
=1000MB
=1000000kB
= 1000000000字节
传统单位:
传统上,许多应用程序,操作系统和开发人员使用二进制单元,给它们SI名称。 Ubuntu,GNOME和OS X都试图遵循先前解释的已发布标准,但是,Microsoft Windows和许多UNIX实用程序仍然使用这些传统单元,因此您需要了解它们。
- 一千字节 :
1KB
= 1024字节(注意大写字母K) - 1兆字节 :
1MB
=1024KB
= 1048576字节 - 1千兆字节 :
1GB
=1024MB
=1048576KB
= 1073741824字节
然而,传统上,速度以每秒位数指定,带有SI前缀! 因此1Mbps实际上是每秒1000000位,即每秒125000字节,即使在Microsoft Windows上也是如此。
如何避免歧义:
如您所见,这些相互矛盾的定义会导致很多混乱。 当我说1MB
,我的意思是一百万字节,还是指1048576字节?
为避免歧义,您应该使用以下策略之一:
- 独家使用IEC前缀。
1MiB
始终是明确的。 - 包括转换为字节数。 例如:1MB或1000000字节
- 使用IEC和SI前缀,例如:1MiB或大约1.048MB。 我更喜欢这个解决方案,因为它清楚地表达了你的意思,并且读者不必进行任何心理计算。
在有歧义的地方,这里有一套很好的经验法则对我很有帮助:
- 如果您发现
KB
(使用大写字母K),则可能正在使用传统单位。 - 如果您发现
kB
(使用小写k),则可能正在使用SI单位。 - 如果数字描述速度,则可能正在使用十进制单位。
- 如果数字在OS X上,在现代Ubuntu或GNOME应用程序上,则可能正在使用十进制单位。
- 如果该号码在硬盘驱动器或另一台计算设备上,则可能正在使用十进制单位。
- 如果数字来自Linux上的命令行实用程序,则可能正在使用传统的二进制单元。
- 如果该号码来自Microsoft Windows应用程序,则可能正在使用传统的二进制单元。
对于Ubuntu应用程序,请查看此列表,指定哪些应用程序使用哪个系统 。
参考文献:
- Ubuntu的单位政策
-
units
手册页