计算机底层:海明校验码。

海明校验码是一种能进行纠错和检错的编码技术,基于奇偶校验码扩展。它通过分组和添加校验位来检测和纠正单个位错误,具有1bit纠错和2bit查错能力。计算校验位的数量需满足2^x≥n+x+1,其中n是数据位数,x是校验位数。通过将信息位分配到特定位置并进行异或操作,海明校验码能定位错误发生的位,从而实现纠错功能。当收到的校验码不符合预设的偶校验模式时,系统会识别出错误并可能要求重新传输数据。

计算机底层:海明校验码。

        海明校验码是由奇偶校验码中的偶校验延申出来的:


计算机底层:奇偶校验码_srhqwe的博客-优快云博客

                了解海明校验码之前需要先了解奇偶校验码。

海明校验码设计思路:

        需要知道:多个校验位就能携带多种状态信息,那么就能够拥有检错和纠错能力。比如:传递1101这串信息,发生了转变,用两种方式进行校验(下面作为初步理解):

                ①如果使用偶校验码传输时1101变成11101,在传输时,变成10101,发生了改变。但是在一整个二进制中想找到错误,肯定是不能的。

                ②如果使用另一种校验方式1101变成分成2个组A和B组,A是前面两位11,B是后面两位01,此时将通过偶校验码将A中11变成011,B中01变成101,最后变成011101如果在传输时,变成011100,在B组发生了改变。计算机通过异或发现A组没问题,B组中101变成100,那么通过异或后发现有问题,就可以锁定在B组范围出现了问题,缩小了范围,这里使用了两个校验位,那么如果再多一点校验位呢呢?就能实现纠错了。

       

海明校验码的功能:

        ①拥有1bit位的纠错能力,如果数据只有1位出错,海明可以纠正这个错误。

        ②拥有2bit位的查错能力,如果数据2位出错,海明校验码可以发现这个错误,然后叫数据源程序发送数据。

        海明校验码是将信息(二进制序列)进行分组,在将每一组进行添加偶校验位,多个校验位,就可以标记出多个位置。

        既然如此,就需要了解海明校验码是如何进行分组的,又需要用到多少个校验位。

校验位的个数:

        设数据有n位,校验码有x位。则校验码一共有2^x种取值方式。其中需要一种取值方式表示数据正确,剩下2^x-1种取值方式表示有一位数据出错。因为编码后的二进制串有n+x位,因此x应该满足2^x-1 ≥ n+x

        用比较好理解的意思就是:用校验位的一种状态表示一串校验码中一个bit位是否发生了错误。

        因此,2^x种取值方式用来表示n+x位数据的错误状态,那么2^x≥n+x才能够表示,因为还要表示一种正确状态,因此需要2^x≥n+x+1

        这里校验码并不是海明校验码直接判断的依据,因此这里很难理解。但是不用担心,下面会提到这里的,届时你会完全明白这里的意思。

        

校验码个数的对应关系(可以记公式,这张表格也是通过公式推出的):

        n是数据位数;k是校验位数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

srhqwe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值