7-4海明码的计算原理

7-4海明码的计算原理

Content #

7-4 海明码,就是一共 11 位。

给这 11 位数据从左到右进行编号,并且也把它们的二进制表示写出来。

接着,先把这 11 个数据中的二进制的整数次幂找出来。在这个 7-4 海明码里面,就是 1、2、4、8。这些数,就是的校验码位,把他们记录做 p1~p4。如果从二进制的角度看,它们是这 11 个数当中,唯四的,在 4 个比特里面只有一个比特是 1 的数值。

那么剩下的 7 个数,就是 d1-d7 的数据码位了。然后,对于的校验码位,还是用奇偶校验码。但是每一个校验码位,不是用所有的 7 位数据来计算校验码。而是 p1 用 3、5、7、9、11 来计算。也就是,在二进制表示下,从右往左数的第一位比特是 1 的情况下,用 p1 作为校验码。

剩下的 p2,用 3、6、10、11 来计算校验码,也就是在二进制表示下,从右往左数的第二位比特是 1 的情况下,用 p2。那么,p3 自然是从右往左数,第三位比特是 1 的情况下的数字校验码。而 p4 则是第四位比特是 1 的情况下的校验码。

这个时候,任何一个数据码出错了,就至少会有对应的两个或者三个校验码对不上,这样就能反过来找到是哪一个数据码出错了。如果校验码出错了,那么只有校验码这一位对不上,就知道是这个校验码出错了。

Viewpoints #

From #

50 | 数据完整性(下):如何还原犯罪现场?