我注意到不同的应用程序使用不同的单位,或者它们的含义不同。
例如,我曾经碰到过kB,KB,KiB,Kb和K。这些单位中的每一个代表多少字节?
如果这些单位有不同的定义,哪些应用程序使用哪些?
Fli*_*imm 21
电子计算机中的数据以各种方式存储和传输,但它们总是被解释为二进制值序列,0 或 1。一个二进制值称为位。八位称为一个八位字节或一个字节。在这一点上是有共识的。
一个位表示为b,一个字节表示为B。在这一点上有共识,如果你发现一个应用程序违反了这个约定,那肯定是一个错误或错误。人们经常将两者混淆,但应用程序开发商和制造商总体上不会混淆。
一旦你进入更大的单位,就会有两种思想流派,可悲的是,这意味着没有达成共识。不同的操作系统和不同的应用程序属于一种或另一种学派。
Ubuntu 有一个已发布的单位政策,它定义了这样的单位。
第一组单位是 1024 的倍数。(为什么是 1024?因为 1024 是 2 的 10 次方,这可以让程序员的生活更轻松。)这组单位被称为二进制单位或 IEC 前缀,在IEC 标准之后定义了它们:
1KiB= 1024 字节(注意大写 K)1MiB= 1024KiB= 1048576字节1GiB= 1024MiB= 1048576KiB= 1073741824个字节第二组单位是 1000 的倍数。这与 SI 系统中常用的单位更接近,例如米、升和克。一公斤是1000克;同理,千字节等于 1000 字节。这组单位称为十进制单位或 SI 前缀。
1kB= 1000个字节(注意是小写k)的1MB= 1000kB= 1000000字节1GB= 1000MB= 1000000kB=十亿字节传统上,许多应用程序、操作系统和开发人员都使用二进制单位,并赋予它们 SI 名称。Ubuntu、GNOME 和 OS X 都试图遵循前面解释的已发布标准,但是,Microsoft Windows 和许多 UNIX 实用程序仍然使用这些传统单位,因此您需要了解它们。
1KB= 1024 字节(注意大写 K)1MB= 1024KB= 1048576字节1GB= 1024MB= 1048576KB= 1073741824个字节然而,传统上,速度以每秒位数指定,带有 SI 前缀!所以 1Mbps 实际上是每秒 1000000 位,也就是每秒 125000 字节,即使在 Microsoft Windows 上也是如此。
如您所见,这些相互矛盾的定义导致了很多混乱。当我说 时1MB,我的意思是一百万字节,还是 1048576 字节?
为避免歧义,您应该使用以下策略之一:
1MiB始终是明确的。在有歧义的地方,这里有一套很好的经验法则,对我很有帮助:
KB(带有大写字母 K),则可能正在使用传统单位。kB(带有小写字母 k),则可能正在使用 SI 单位。对于 Ubuntu 应用程序,请查看此列表,指定哪些应用程序使用哪个系统。