Ubuntu上的应用程序使用什么文件大小单位?


13

我注意到,不同的应用程序使用不同的单位,或由它们来表示不同的含义。

例如,我曾经碰到过kBKBKiBKbK。这些单元分别代表多少个字节?

如果这些单元有不同的定义,那么哪些应用程序使用哪些定义?

Answers:


20

介绍:

电子计算机中的数据以各种方式存储和传输,但是它们始终被解释为一系列二进制值(0或1)。一个二进制值称为位。八位称为八位位组或字节。对此达成共识。

一个比特表示为b,一个字节表示为B。在此基础上达成共识,如果您发现某个应用程序违反了该约定,则肯定是一个错误或错误。人们经常将二者混淆,但总体而言,应用程序开发人员和制造商则不会。

一旦进入更大的部门,就会有两种思想流派,可悲的是,这意味着没有共识。不同的操作系统和不同的应用程序属于一个思想流派。


Ubuntu的单位政策:

Ubuntu有一个已发布的单元策略,该策略定义了这样的单元。

第一组单位是1024的倍数。(为什么1024?因为1024是2乘以10的幂,所以可以简化程序员的生活。)在IEC标准之后,这组单位称为二进制单位或IEC前缀。定义了它们:

  • 1 kb1KiB= 1024字节(注意大写K)
  • 1 MB1MiB= 1024KiB= 1048576字节
  • 1吉字节:1GiB= 1024MiB= 1048576KiB= 1073741824字节

第二组单位是1000的倍数。这与SI系统中常用的单位(例如米,升和克)更加接近。一公斤是一千克;同样,千字节为1000字节。这套单位称为十进制单位或SI前缀。

  • 1 KB1kB= 1000字节(注意小写k)
  • 1兆字节1MB= 1000kB= 1000000字节
  • 1 GB1GB= 1000MB= 1000000kB= 1000000000字节

传统单位:

传统上,许多应用程序,操作系统和开发人员都使用二进制单位,并为其指定SI名称。Ubuntu,GNOME和OS X都试图遵循先前解释的已发布标准,但是Microsoft Windows和许多UNIX实用程序仍使用这些传统单元,因此您需要意识到它们。

  • 1 KB1KB= 1024字节(注意大写K)
  • 1兆字节1MB= 1024KB= 1048576字节
  • 1 GB1GB= 1024MB= 1048576KB= 1073741824字节

但是,传统上,速度是使用SI前缀以每秒比特数指定的!因此,即使在Microsoft Windows上,1Mbps实际上是每秒1000000位,也就是每秒125000字节。


如何避免歧义:

如您所见,这些矛盾的定义引起了很多混乱。当我说时1MB,我的意思是一百万字节,还是1048576字节?

为避免歧义,应使用以下策略之一:

  • 只能使用IEC前缀。1MiB永远是明确的。
  • 包括对字节数的转换。例如:1MB或1000000字节
  • 请同时使用IEC和SI前缀,例如:1MiB或大约1.048MB。我更喜欢这种解决方案,因为它可以清楚地说明您的意思,并且读者无需进行任何心理上的计算。

在有歧义的地方,有一些很好的经验法则对我很有帮助:

  • 如果发现KB(大写的K),则可能正在使用传统的单位。
  • 如果发现kB(小写的k),则可能正在使用SI单位。
  • 如果数字描述的是速度,则可能使用的是十进制单位。
  • 如果该数字在OS X,现代Ubuntu或GNOME应用程序上,则可能使用的是十进制单位。
  • 如果该数字位于硬盘驱动器或另一台计算设备上,则可能使用的是十进制单位。
  • 如果该数字来自Linux上的命令行实用程序,则可能正在使用传统的二进制单位。
  • 如果该数字来自Microsoft Windows应用程序,则可能正在使用传统的二进制单位。

对于Ubuntu应用程序,请查看此列表,以指定哪些应用程序使用哪个系统

参考文献:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.