代码是将唯一的字符串(代码字)分配给字母表中的每个字符。
代码字只包含零和一的代码称为二进制代码。
所有 ASCII 码字具有相同的长度。这确保了一个称为前缀属性的重要属性适用于 ASCII 代码。
来自字母表(明文)的字符串的编码是与明文字符相对应的码字从左到右按顺序串联。如果使用该代码的每个可能的明文的编码都是唯一的,则该代码是唯一可解码的。
基于上述信息,我试图做一些练习:
考虑以下矩阵:
Code1 Code2 Code3 Code4
A 0 0 1 1
B 100 1 01 01
C 10 00 001 001
D 11 11 0001 000
困惑:
- 是否所有上述分配都被认为是
codes
因为它们具有唯一的字符串??? - 我知道它们
code 1 and code 2
是无前缀的,因为它们的长度不相等。话虽如此,如果您查看code 4
字母表D and C
,它包含 3 位数字。code 4
也会被认为是无前缀的吗? - 是
code 3
唯一可解码的代码吗?