美文网首页
海明码校验说明

海明码校验说明

作者: 大橙子0717 | 来源:发表于2019-04-17 11:02 被阅读0次

    海明码校验:

    设数据位是n位。校验位是k位,则满足关系:2^k>=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
      数值 x_1 x_2 1 x_3 0 1 0 x_4 1 1 0
    1. 计算校验位的值

      x_1值:x_1\bigoplus1\bigoplus0\bigoplus0\bigoplus1\bigoplus0=0 解出x_1=0;同理解出x_2=1,x_3=1,x_4=0

      得到的海明码为:01110100110.

    2. 进行校验

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

      0\bigoplus1\bigoplus0\bigoplus0\bigoplus1\bigoplus1=1

      1\bigoplus1\bigoplus1\bigoplus0\bigoplus1\bigoplus1=1

      1\bigoplus0\bigoplus1\bigoplus0=0

      0\bigoplus1\bigoplus1\bigoplus1=1

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

    相关文章

      网友评论

          本文标题:海明码校验说明

          本文链接:https://www.haomeiwen.com/subject/mbugwqtx.html