我看到 Ubuntu 中使用“MiB”作为表示大小的单位。MiB 代表什么?特别是“i”?
答案1
有两种方法(常用)来表示数量级,以使大数更容易阅读,首先可以使用 10 的幂。
10⁰ = 1
10¹ = 10
10² = 100
10³ = 1000
或者 2 的幂
2⁰ = 1
2¹ = 2
2² = 4
2³ = 8
以这些系列为基础,我们得出数字 1000 和 1024(10³ 和 2¹⁰),公斤。
一个字节有 8 位。因此,1 千字节为 8×10³ = 8000 位。硬盘制造商使用此方法。在计算机科学中,人们通常使用 2 的幂,因此 1 千字节为 8×2¹⁰ = 8192 位。
数字越大,差异就越大。有些人甚至将这两个系统混合在一起,以获得漂亮的数字放在包装上。这就是为什么 1.44MB 软盘既没有 1.44 兆字节,也没有 1.44 兆字节(他们使用 1024×1000)。
这背后的逻辑这些术语源自原始的 si 前缀,千、兆、吉,但带有单词二进制投入。因此我是第二个字母二进制。千字节的助记符是“千二进制字节”,“KiB”的发音为“Kibibyte”。
所有这些都定义在IEC_80000 标准。
请注意,兆字节并非定义为 2²⁰,而是 (2 10 ) 2,尽管它们相等。吉字节为 (2 10 ) 3,太字节为 (2 10 ) 4,依此类推。
Prefix Bytes Prefix Bytes
1 Byte = (2^10)^0 = 1 1 Byte = (10^3)^0 = 1
1 Kibibyte = (2^10)^1 = 1024 1 Kilobyte = (10^3)^1 = 1000
1 Mebibyte = (2^10)^2 = 1048576 1 Megabyte = (10^3)^2 = 1000000
1 Gibibyte = (2^10)^3 = 1073741824 1 Gigabyte = (10^3)^3 = 1000000000
1 Tebibyte = (2^10)^4 = 1099511627776 1 Terabyte = (10^3)^4 = 1000000000000
请记住,常常,当作者想表达“千字节”的意思时,会使用“千字节”这个术语。正如 Randy Orrison 指出的那样,二进制单位直到 1999 年左右才被引入。
作为尼尔麦基在评论中发现,官方对此有政策:
https://wiki.ubuntu.com/UnitsPolicy
总而言之,该政策提醒开发人员使用 SI 或 IEC 前缀,但切勿混用。它继续说道:
对于文件大小,有两种可能性:
- 同时显示十进制和二进制(按此顺序)。Linux 内核就是一个例子:“2930277168 512 字节硬件扇区:(1.50 TB/1.36 TiB)”
- 仅显示十进制,或者让用户有机会在十进制和二进制之间做出选择(默认必须为十进制)。
答案2
MiB 代表什么?特别是“i”?
由于没有人真正回答这个问题:“MiB”代表“米埃加布我零byte”,可缩写为“米埃布ibyte”(虽然这听起来有点蠢,我宁愿坚持说“兆二进制”)。 参见 NIST 解释。
所以“i”来自“binary”这个词。
过去曾有其他提议来缩写这些单位,但都未能获得支持:
- κ = 1024, κ2 = 1024², κ3 = 1024³, ... (希腊字母 kappa,难以输入)
- KKB = 1024, MMB = 1024², GGB = 1024³, ...(可能被误解为兆兆字节 = TB)
- bK = 1024, bK² = 1024², bK³ = 1024³, ...(提出时,许多计算机甚至没有小写字母)
- 1B10 = 1024,1B20 = 1024²,1B30 = 1024³,...
- k₂B = 1024, M₂B = 1024², G₂B = 1024³, ...
答案3
这是 IEC 标准前缀,意思是“以 2 的幂”
2^10 = 1024 = Ki-
2^20 = 1048576 = Mi-
更多详情
答案4
他们是二进制前缀,对应于更常见的十进制前缀。(这是一篇很好的文章,很好地解释了其基本原理。)