海明码学习

求数据01101001的海明码

1、确定校验码的位数

2- 1 >=  n + k

此处n为8,解得 k = 4

2、设校验码的4位分别为 P1 , P2 , P3 , P4  , 数据为 D1 , D2 , D3 , ........  , D8 ,相加一共 12 位 ,设为  M1 , M2 , M3 , ........  , M12

3、确定校验码和数据的位置

Pi  = M 2 i-1

P1 =  M 2 1-1  = M 2 0 =  M 1   ,   P2 =  M 2 2-1  M  2 1 =M 2       ,  以此类推。

注意:此处D1 为末位 ,从右往左数

4、假设出错为 e1 , e2  , e3  , e4 

注意:此处e1 为末位 ,从右往左数

代入相对应的数值 :

若为偶校验方式,则 ei 均为 0 时表示接受到的数据无错误 ; 若为奇校验方式,则 ei 均为 1 时表示接受到的数据无错误 ; 

注:此处为偶校验 

注:这里的相加指的是异或关系

填回到最初的那张表

求得 01101001 的海明码为 011001001101 (M1是末位)

原文地址:https://www.cnblogs.com/ltw222/p/15390690.html