【海明码】一题学会海明码!

一、详细步骤

1、海明码,也称汉明码

2、海明码=数据码+校验码

3、假设数据码为1100,有4位,即n=4

4、由公式2^k>=n+k+1,解得k=3,即需3个校验码

5、校验按2^i(即2的i次幂,如1、2、4、8、16、32...)留出空来,一会填校验码

6、分组

1)我们需要确认H1、H2、H4这三个校验位都来校验哪些位置

2)将1、2、4的二进制码写出来,最高位补到3位(前面算的k=3),如下

3)将0替换为*,作为通配表,如下

4)将1到7的二进制列出来,如下

 5)将这几个数与上面的通配表进行匹配(把有与通配表1相同位置的数放一列),如下

 6)因此我们可以确定:

H1负责H1、H3、H5、H7的校验

H2负责H2、H3、H6、H7的校验

H4负责H4、H5、H6、H7的校验

7、用偶校验法,求出校验位是1还是0

H3、H5、H7的1的个数为奇数,因此H1=1

H3、H6、H7的1的个数为偶数,因此H2=0

H5、H6、H7的1的个数为偶数,因此H4=0

8、至此我们得出了完整的汉明码,如下

 9、查错( ^ 表示按位异或)

第一组 p1 = H1 ^ H3 ^ H5 ^ H7       

第二组 p2 = H2 ^ H3 ^ H6 ^ H7

第三组 p3 = H4 ^ H5 ^ H6 ^ H7

10、画圈(这样方便目视)

1)如编码完全正确,那么p1、p2、p3的结果都是0

2)如果p1 = 1,p2 = p3 = 0,则说明p2与p3组的成员2、3、4、5、6、7都没出错,则H1错误

3)以此类推

11、总结

二、参考连接

1、《汉明码(海明码)》通俗易懂https://blog.csdn.net/weixin_61985100/article/details/123300540

2、海贼宝藏https://www.haizeix.com

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林月明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值