海明码校验:
设数据位是n位。校验位是k位,则满足关系:。下面以1010110讲解校验的步骤:
-
确定校验位的位置
校验码所在位置为二进制串中的整数幂,即1、2、4、8位,其余为数值位。如下表:
位置 1 2 3 4 5 6 7 8 9 10 11 位置二进制表示 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 数值 1 0 1 0 1 1 0
-
计算校验位的值
值:
解出
;同理解出
得到的海明码为:01110100110.
-
进行校验
假设位置为1011的数据由0变成1。将所有位置形如***1,**1*,*1**,1***分别异或:
上面四组如果有一组异或值为1,则表示有位置数值出错,根据上面只可判断1011位即海明码第11位数据出错。
网友评论