[海明校验]速成指南

1、对M位数据需要多少位校验码

a)        2^k>=m+k

b)        其中k是校验位数,m是原数据位数

2、建立海明码

12   11  10    9    8     7     6    5    4     3    2     1

M8   M7  M6  M5  C8   M4  M3  M2  C4   M1  C2   C1

括号中表示参与该位数值校验的校验码

3=2+1(C2 C1)

5=4+1(C4 C1)

6=4+2(C4 C2)

7=4+3 ..

9=8+1 ..

10=8+2 ..

11=8+2+1(C8 C2 C1)

12=8+4 ..

按照这个规律可得:

C1=M1 Å M2 Å M4 Å M5 Å       M7

C2=M1 Å M3 Å     M4 Å M6 Å   M7

C4=M2 Å M3 Å     M4 Å M8

C8=M5 Å M6 Å     M7 Å      M8

 

3、关于异或运算

a)        相同为0,不同为1

4、关于校验方法

a)        依照原始数据(不包含校验码),根据上面的规则,计算出C8C4C2C1

b)        依照接收到的数据(不包含校验码),根据上面的规则,计算出新的4位校验码D8D4D2D1

c)   C8C4C2C1

    D8D4D2D1

        ----------------

    R8R4R2R1

    对CiDi使用异或运算得出Ri

d)        Ri的值就是一共12位数中,第Ri位出错

    如Ri=0110=6,则出错的就是M3(参照开篇的一组数)

原文地址:https://www.cnblogs.com/imakoo/p/3489512.html