正如这里的大多数人所知,通过使用 4 位,我们可以从 0 数到 15(十六进制的 0123456789ABCDEF)。但是如果我们只数到 9,我们仍然会使用 4 位,并且从 A 到 F 的数字将被浪费。
然而,维基百科的二维码页面指出,仅使用 0 到 9 的数字使用每个字符 3⅓ 位,从统计的角度来看这是正确的。然而,三分之一位不是物理对象,据我所知,发送一个从 0 到 9 的数字至少使用 4 位。
有什么方法可以使用浪费的组合来有效地发送带有小数位的字符?
好的,我举个例子:必须发送两个数字“27”。使用正常的编码技术,发送的位将是 00100111。然后我们可以想象一个系统将数字“2”替换为数字“E”或“F”,具体取决于下一位;在这种情况下,下一位是 0,因此“2”被“E”替换。生成的位串将是 1101 0 111。另一方面,如果必须发送数字“28”,则“2”之后的第一位是 1,因此将其替换为数字“F”,产生字符串 1111 1 000。
在这两种情况下,都实现了 1 位的经济性,因为一个半字节用于两个不同的字符。换句话说,每个字符使用三位半。