校验码(海明码)

 海明码一般指汉明码,与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。

 确定校验码的位数x

  设数据有n位,校验码有x位。则校验码一共有2x种取值方式。其中需要一种取值方式表示数据正确,剩下2x-1种取值方式表示有一位数据出错。因为编码后的二进制串有n+x位,因此x应该满足

2x-1 ≥ n+x   

  使不等式成立的x的最小值就是校验码的位数。在本例中,n=7,解得x=4。就是说,当n=校验位的值的时候,X等于多少?

 

题目一般会说给出一定位数的数据。首先根据下面这个表格,二进制次方表。看看这个位数对应多少次方,只能大不能小

比如说32位的校验码。根据上面的公式,2≥ 32+1+X ,将位数代入到N里。将1移到右边。

简化公式就是:2x ≥ 33+X  根据这个简化公式,其实就可以理解为,2的多少次方可以大于等于33

根据2次方表就可以知道,6个次方!!

最后代入公式,2≥ 33+6  即26 ≥ 39  ,即X=6  就是说需要加入6位校验码

 

 

 

遇到此种题目,首先看给出的信息位是多少,比如16,那么2的多少个次方可以比16大?。2的4次方刚好是16,2的5次方比16大。

那么就代入公式看看,答案是5次方

 

 

 

 

 

 

 
posted @ 2018-03-09 00:04  老乌龟  阅读(2393)  评论(0编辑  收藏  举报