海明码

汉明码(Hamming Code)

是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。

下图是我做好的效果图:

海明码

1列出位置号和海明码

海明码

2列出P4和G4, P3和G3, P2和G2, P1和G1

海明码

注意:从右往左2进制递增,由于H1,H2,H4,H8中只有1位数,所以海明码的位置改为P1,P2,P3,P4。

 

3题目会给你实际数,这里实际数是我自己想的。


海明码

 

4备份实际数

海明码

注意:把海明码位置是P1,P2,P3,P4的地方改为0,实际数往后移一位。


5将备份的值复制到海明码处

海明码


6在P4,P3,P2,P1中填入公式,=B27*B$43,B27代表的是

海明码

B43

海明码

然后以此类推填充。

 

7在校验位处填入公式

=MOD(10-MOD(SUM(B33:P33),10),10)

B33到P33的总和

海明码

32mod10取余2,10-2=8,8mod10取余8。

自动填充校验位分别是

海明码

把我圈起来的地方43行的地方改为下方数,此时校验码会全变0.

海明码

海明码


这行数就是海明码

海明码