海明码
作者:互联网
海明码纠错思路
①确定校验码的位数r
②确定校验码和数据的位置
③求出校验码的值
④检错并纠错
海明不等式:2^r >= k+r+1
需要发送的数据:101101
- 校验码的位数 :r = 4
- 数据总长度: Dlength = 10;
- 校验码位置 : 2的n次方 p1 p2 p3 p4
- 数据 101101 分别为 D1 D2 D3 D4 D5 D6
P1可以校验的二进制最后一位是1的数据位:p1 d1 d2 d4 d5
P2可以校验的二进制倒数第二位是1的数据位:p2 d1 d3 d4 d6
P3可以校验的二进制倒数第三位是1的数据位:p3 d2 d3 d4
P4可以校验的二进制倒数第四位是1的数据位:d5 d6
求解P,以上分别异或令其值为0
P1 ⊕ D1⊕ D2 ⊕ D4 ⊕ D5 =0
P2 ⊕ D1⊕ D3 ⊕ D4 ⊕ D6 =0
P3 ⊕ D2⊕ D3 ⊕ D4 =0
P4 ⊕ D5⊕ D6 =0
编码:
解出: p1=0 p2=0 p3=0 p4=1
因此:编码为 0010011101
检错:
假设第五位出错
正确:0010011101
五位:0010111101
解码:与编码相反操作
P1可以校验的二进制最后一位是1的数据位:p1 d1 d2 d4 d5
P2可以校验的二进制倒数第二位是1的数据位:p2 d1 d3 d4 d6
P3可以校验的二进制倒数第三位是1的数据位:p3 d2 d3 d4
P4可以校验的二进制倒数第四位是1的数据位:d5 d6
以上分别异或运算
P1 ⊕ D1⊕ D2 ⊕ D4 ⊕ D5 =1
P2 ⊕ D1⊕ D3 ⊕ D4 ⊕ D6 =0
P3 ⊕ D2⊕ D3 ⊕ D4 =1
P4 ⊕ D5⊕ D6 =0
0101 出错在第五位,所以正确编码为: 0010011101
标签:二进制,明码,校验,校验码,数据位,D4,d4 来源: https://blog.csdn.net/weixin_40285319/article/details/112389528