海明码校验说明

海明码校验:

设数据位是n位。校验位是k位,则满足关系:。下面以1010110讲解校验的步骤:

  1. 确定校验位的位置

    校验码所在位置为二进制串中的整数幂,即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
  1. 计算校验位的值

    值: 解出;同理解出

    得到的海明码为:01110100110.

  2. 进行校验

    假设位置为1011的数据由0变成1。将所有位置形如***1,**1*,*1**,1***分别异或:

    上面四组如果有一组异或值为1,则表示有位置数值出错,根据上面只可判断1011位即海明码第11位数据出错。

你可能感兴趣的:(海明码校验说明)