海明校验码



一、作用


     这是关于计算机基础的知识。我们都知道计算机系统运行时,各个部件之间要进行数据交换,为了确保数据在传送的过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。此文主要是从海明码的校验能力来说,也是使用校验码的方法来检测传送的数据是否出错。

     它的实现原理,是在m个数据位之外加上k个校验位,从而形成一个m+k位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。

     可能看这原理较难理解,请看下面的例子。

二、确定校验码方法

     要计算海明校验码的值,很简单,三步即可:

     首先,要知道海明校验码是放在2的幂次位上的,即“1,2,4,8,16,32······”;

     其次,对于信息位为m的原始数据,需要加入k位的校验码,它满足m+k+1<2k

     最后,即可计算出校验码。

三、举例

     例如:要计算原始信息位为101101100的海明校验码。

     1.先用m+k+1<2k计算出校验位:9+k+1 <2k→k=4,即校验位为4位。

     2.把原始信息位填入下表1

     3.填充校验位

     这是比较关键的一步,看看都有哪些位置用到了哪几个校验位,如下表2

                                                                 

     至此,咱们就可以知道每个校验位都校验了哪些位置,即:

     Bit1=3,5,7,9,11,13

     Bit2=3,6,7,10,11

     Bit4=5,6,7,12,13

     Bit8=9,10,11,12,13

     最后,用位置上的原始信息(表1)做异或运算(相同时为0,不同时为1就可以知道校验位上的值了,即:

     Bit1=101010=1

     Bit2=11111=1

     Bit4=01100=0

     Bit8=01100=0

     把校验位填到表1为:

四、结语

     第一次看海明校验的时候,不知道它是怎么计算出校验位上的值,之后和同伴讨论了之后感觉自己明白了,但当另一个同伴再问的时候,需要点时间才能拾起,所以这次进行了总结。学习真的需要反复。


评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值