海明校验码

半城伤御伤魂 提交于 2020-01-31 13:37:13

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

        下面是我对海明校验码的理解:(以一个例子来讲解)求信息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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!