混淆点其一,\(\text{B/b}\) 这一缩写,可能代表 \(\text{Byte}\)(字节) 或 \(\text{Bit}\)(二进制位,binary digit)。而 \(1 \, \text{Byte} = 8 \, \text{Bit}\)。
在标准情况下,大写的 \(\text{B}\) 代表 \(\text{Byte}\),小写的 \(\text{b}\) 代表 \(\text{Bit}\)。
然而,并不是所有人都标准。建议根据上下文和单位推测。若为讨论储存的上下文,大概率代表 \(\text{Byte}\);若为讨论网络流传输,大概率代表 \(\text{Bit}\);\(\text{bps}\) 一般代表 \(\text{Bit}\)。
混淆点其二,对于这两者都可以添加前缀
[k, m, g, t, p, e, z, y]
。然而,他们虽然能指/缩写相同,指代并不一定一致。
缩写 | 十进制全称 | 次方 | 二进制全称 | 次方 |
---|---|---|---|---|
k | kilo- | \(10^3\) | kibi- | \(2^{10}\) |
m | mega- | \(10^6\) | mebi- | \(2^{20}\) |
g | giga- | \(10^9\) | gibi- | \(2^{30}\) |
t | tera- | \(10^{12}\) | tebi- | \(2^{40}\) |
p | peta- | \(10^{15}\) | pebi- | \(2^{50}\) |
e | exa- | \(10^{18}\) | exbi- | \(2^{60}\) |
z | zetta- | \(10^{21}\) | zebi- | \(2^{70}\) |
y | yotta- | \(10^{24}\) | yobi- | \(2^{80}\) |
以上仅为部分,全表可见:
同时,二进制词头可以缩写为诸如 \(\text{Ki}\)(Kibi-)的形式,避免歧义。
十进制前缀为国际单位制(SI,Système International d’Unités)的标准;二进制词头为 IEC 60027 标准,同时被 IEEE 1541-2002 采纳。
好了,现在看到一个小小的 \(\text{KB}\),居然能在不同的上下文中,最多有 \(2^2=4\) 种歧义。
有人认为,可以靠小写为十进制,大写为二进制区分\(^?\)。然而,并这不符合标准。SI 的词头缩写是大小写敏感的。诸如 \(\text{M}\) 和 \(\text{m}\):前者是 \(\text{mega-}\) 的缩写,意为 \(10^6\);后者是 \(\text{micro-}\) 的缩写,意为 \(10^{-6}\)。IEC 标准也没有规定此项。
目前而言,最标准的做法,是使用诸如 \(\text{Ki}\) 与 \(\text{K/k}\) 的对立。分别对应 SI 和 IEC 标准,而无混用。
然而,不是所有人这样使用单位。如同语言学中的音位对立,复杂而难以言明。
- \(\text{K}\) 独自出现,必然有歧义,可能是 \(1,000\) 或 \(1,024\)。
- \(\text{K}\) 与 \(\text{k}\) 一起出现,\(\text{K}\) 为 \(1,024\),\(\text{k}\) 为 \(1,000\)。
- 最标准的用法:\(\text{K}\) 与 \(\text{Ki}\) 一起出现时,\(\text{K}\) 是 \(1,000\),\(\text{Ki}\) 是 \(1,024\)。