海明校验码(靠谱的解释)

 https://www.cnblogs.com/zsswpb/p/5771636.html

【定义】

     海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的确定位置插入k个校验位,通过扩大吗距来实现检错和纠错。对于数据位m的数据,加入k位的校验码,它应满足:
 2^k>m+k+1  

   【例子】

     设数据为01101001,试采用校验位求其偶校验方式的海明码。
     (1)确定数据位D和校验位P在海明码中的位置:
    由海明码编码规则可知:
             pi在海明码的第2i-1
             比如P4=2^(4-1)=8,所以位于第8位

                         

    (2)确定校验关系
         这个难点在于如何确定校验位组。
         举一个例子来说:H3=D0,海明码下标为3,我们必须用已知的校验位所对应的海明码下标(P1,P2,P3,P4,它们的海明码下标分别是 1,2,4,8)来表示3,这里3就可以等于1+2。
H5为什么是1+4而不是2+3呢?因为H3不是校验位,是数据位。
 
          
       
       比如P1 的校验位为表格中红色标记出来所对应的海明码的位数
       故:P1校验:P1,D0,D1,D3,D4,D6
               P1=D0⊕D1⊕D3⊕D4⊕D6=1⊕0⊕1⊕0⊕1=1
               ⊕符号:代表异或,相同则为0,不同则为1。只要仔细一定可以计算正确。
               P2、P3、P4的海明码计算也是如此,关键是要找出正确的校验位组,所以海明校验码:011001001101
 
原文地址:https://www.cnblogs.com/quietwalk/p/8607932.html