数据检错和纠错的校验算法-海明码

本文详细介绍了海明码的原理,通过设置校验位实现检错和纠错。以1011为例,计算其海明码的过程,确定需要3位校验位,并解释了如何根据2的幂次放置校验位以及如何通过异或操作计算校验值。最后,得出1011的海明码为1010101。
摘要由CSDN通过智能技术生成

海明码 : 本质也是利用奇偶性来检错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位 ,通过扩大码距实现检错和纠错 。
如果数据位是n位 , 校验位是k位 , 则n和k必须满足以下关系 ; 2^k-1>=n+k。

例 求1011的海明码

带入海明码的关系:

n=4;
设k=1,则2^1-1>=4+1则1>=5不成立,所以k != 1;
设k=2,则2^2-1>=4+2则3>=6不成立,所以k != 2;
设k=3,则2^3-1>=4+3则7>=7成立,所以k = 3;
则1011海明码的校验位需要3位。

海明码的校验位需要放置在2^N位置上,n = 0,1,2,3,4……,而上面得出海明码只需3位,所以2 ^0=1,2 ^1=2,2 ^2=4,校验位放置在1,2,4上。

在这里插入图片描述

计算海明码

所有信息位的编号都用2的N次方表示:
7 = 2 ^ 2 + 2 ^ 1 + 1 = 4 + 2 + 1;
6 = 2 ^ 2 + 2 ^ 1 = 4 + 2;
5 = 2 ^ 2 + 1 = 4 + 1;
3 = 2 ^ 1 + 1 = 2 + 1;

7 = 4 + 2 + 1,代表第7位由校验位的4,2,1共同校验,其他位置的信息位同理。
通过上面信息位的位置编号可知,第4位校验位为7、6、5位置的信息位进行了校验,把这三个位置的数进行异或得出校验位。
校验位4是【编号7的信息位】异或【编号6的信息位】异或【编号5的信息位】:1异或 0 异或 1 》1 异或 1 》 0;(相同为0,不同为1);
校验位2:1异或 0 异或 1 》 1 异或 1 》 0;
校验位1:1异或 1 异或 1 》 0 异或 1 》 1;
在这里插入图片描述
最终得出1011的海明码是1010101

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦里藍天

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

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

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

打赏作者

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

抵扣说明:

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

余额充值