海明码
1.学习前提
学习海明码之前,我们要约定3个原则:
- 海明码只能检测出2位错,纠1位错(因此不要问如果3位错怎么办等幼稚问题)。
- 海明码默认进行偶校验(除非特殊说明使用奇校验)。
- 海明码是一串由0和1组成的序列(除01外没有其他的值,记住了!这是重点)
2.海明码的构成
海明码由信息位和校验位组成。
校验位:2的n次方的位置
信息位:不是2的n次方的位置
如下表所示:
H7 | H6 | H5 | H4 | H3 | H2 | H1 | 海明码位置 |
---|---|---|---|---|---|---|---|
X4 | X3 | X2 | X1 | 信息位 | |||
P2 | P1 | P0 | 校验位 |
3.求海明码例子
如:求信息1011的海明码?
1.算出校验位数k
2^k >= k + 信息位数 + 1
2^k >= k + 4 + 1 ======》k=3,即校验位3个