海明校验码

        从看视频到看书,一直都没有明白,到底什么是海明校验码,只是感觉它很麻烦。有一句话说的特别对,难着不会,会者不难。其实,我们越是感觉它难,我们越对它有心里抵触,学习一个新知识,我们不要自己先把它给复杂化了,只要我们用心去学习,就像你认识一个新的朋友,只要你用心与她交流,一切就都不是问题!

        下面是我对海明校验码的理解:(以一个例子来讲解)求信息1011的海明码。

 1、记公式

首先记住这个公式:2^r≥k+r+1  (其中r为校验位 ,k为信息位)。

 2、求位数

从题目1011是4位,可知信息位是4位,即k=4;

然后求出r的最接近且满足条件的值,得r=3。

 3、画表

根据k+r=7,我们就画一个公7位的表:


 4、填数

校验位一般都是在2^n的位置,因此这样填入:


然后再把1011从7开始填入信息位(校验位有数的往后措一位):


 5、求校验位的值

确定校验位的分组原则:每个位数都由R1、R2、R3中的一或若干个所确定。

例如:1由第一位R1来校验;2由第二位R2来校验;由于3=1+2(1和2指的是位数,都是2的n次方)所以3由第一位R1和第二位R2校验,4由第四位R3校验,5和3道理是一样的,5=1+4(2^0+2^2);6=2+4;7=1+2+4,依次类推。得出下表:


进行汇总,看每个校验位都确定了哪一位。

R1:1、3、5、7

R2:2、3、6、7

R3: 4、5、6、7


最后用亦或运算求出R1、R2、R3的值:(以R1为例)

第二行是对应的信息位上的数,如图求出R1=1.


以此类推:得出下表


 6、读数

从1到7依次读出:1010101.

到这为止,海明检验码就求出来了。


看似很麻烦,其实很简单,多做几个题加深一下印象就OK了!







           

转载自https://blog.csdn.net/wlj323/article/details/48830819

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值