校验码——揭开海明校验码求解之谜

本文详细介绍了海明校验码的原理和计算过程,旨在帮助理解如何通过增加校验位来确保数据传输的准确性。通过一个具体的例子,展示了如何确定校验位数量、分配信息位和校验位、计算校验位值,并最终形成完整的海明码。海明校验码不仅能检测错误,还能定位错误位置,是数据传输中的重要错误检测工具。
摘要由CSDN通过智能技术生成

引言

       计算机系统在运行时,各个部件之间要进行数据交换,为了确保数据在传送过程中正确无误,通常使用校验码的方法来检测传送的数据是否出错。合理的设计错误编码以及编码规则,舍得数据在传送中出现某种错误时会变成错误编码,这样就可以检测出接收到的数据是否有错。

校验码

       通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。常见的校验码有中华人民共和国居民身份证的最后一位、ISBN号码的最后一位、组织机构代码的最后一位、数据传输的正确性验证码等。

       书上介绍了三种校验码:奇偶校验码、海明校验码和循环冗余校验码。

       奇偶校验码:通过在编码中增加一位校验位来使编码中1的个数为奇数或者为偶数,从而使码距变为2。对于奇校验,可以检测出代码中奇数位出错的代码,但是不能发现偶数位出错的情况。常用的有三种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。

      循环冗余校验码:利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。在求CRC编码时,采用的是模2运算。(加减运算的规则是按位运算,不发生借位和进位。)

       这里我们主要介绍一下海明校验码。之前视频中也讲过海明校验码,但是看完视频就蒙了,想着反正我们的学习是反复的,现在什么都不懂没事,先知道有这么个高大上的东西,之后还是会遇到的。然后再看书专项复习阶段,又遇到了,研究一下,通过视频中的例子来给大家分享。

海明校验码

       视频中的例子:求信息1011的海明码。

 

       首先,我们要知道海明校验码的实现原理:在K个数据位之外加上r个校验位,从而形成一个K+r位的新的码字,使新的码字的码距比较均匀的拉大。

       步骤:

1、根据信息位,确定校验位数

       根据公式2^r≥k+r+1,其中k为信息位,r为校验位数。因为1011共四位,所以k=4,求得r最小应该是3.

       由于信息位和校验位一共是7位,所以海明码的位数是7位,由此确定初步的表格:

位数

1          

2       

3          

4          

5           

6           

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值