【软考】校检码之海明校验码的求法

来源:互联网 发布:淘宝怎么改差评手机 编辑:程序博客网 时间:2024/04/29 12:58

    通过看软考视频学习了校验码的知识,校验码在百度百科的解释为:通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。常见的校验码有中华人民共和国居民身份证的最后一位、ISBN号码的最后一位、组织机构代码的最后一位、数据传输的正确性验证码等。


    通过视频了解到校检码分为奇偶校验码,循环校验码和海明校验码。前面两种还好理解,但是海明校验码看完视频后迷迷糊糊,通过查阅资料询问伙伴终于弄明白了,现在把求解过程大致进行一下总结,分享给大家。


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


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

   根据公式 2^r≥k+r+1求,k为信息位数,r为校验位数。1011一共是4位,所以k=4,r为满足不等式的最小的r.

当r=1时带入式子不符合,2不符合,r=3时,8>=4+3+1,符合

所以确定了初步的表格如下,为了后面填充方便,位数是由大到小排列的:


2.求校验位

2.1校验位的填充

校验位一般都是在2^n的位置,因为表格确定了一共七位,所以,我们在这7位里面寻找到1、2、4,在表格中填充如下:


    2.2在表格中填充信息位,信息位是由高位向低位填充,高位的数字要填充到高位上,1011


2.3求校验位的值

确定每个位置的校验位,每个位数都由R1、R2、R3中的一或若干个所确定。

1由第一个校验位来确定R1,2由第二个校验位来确定R2,3=1+2(1和2都是2的n次方),所以3由第一个和第二个校验位确定,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

最后求校验位的值,1对应的信息位为空,2也为空,3为1,4为空,5为1,依次类推,根据本博客中的第三个表格就可以得知。

然后对每个R所对应的信息位进行异或运算,相同时为0,不同时为1

以R1为例,求出R1=1

   

同理求出R2=0,R3=0

最后将这些数字填入表格:


海明码就求出来了,把上面的红色的数字按照位数从低到高排列下来就是:1010101。

写在后面:

 现在看来海明校检码的求法也没有什么难的,看了一遍视频着实是没有弄明白,这个博客是初次学习的总结,理解的还不深刻,只是想把求解的方法分享给大家,有何不足,请指正。

0 0
原创粉丝点击