Hamming correct

 

 

 

从数的最左边开始,并标记为1

将2的整数次幂的位置留出来,做为校验位例如,8位2进制数10011010===>_ _ 1 _ 0 0 1 _ 1 0 1 0 

位置1用来校验最右边的位为1的位置(这些位的二进制形式右边起第1位均位1)1 3 5 7 9 11标记为_ _ 1 _ 0 0 1 _ 1 0 1

因此校验位为0  即得到0 _ 1 _ 0 0 1 _ 1 0 1 0 

位置2用来校验最右边数第2位为1的位置2 3 6 7 10 11标记为_ _ 1 _ 0 0 1 _ 1 0 1

因此校验位为1  即得到0 1 1 _ 0 0 1 _ 1 0 1 0 

位置4用来校验最右边数第3位为1的位置4 5 6 7 12标记为_ _ 1 _ 0 0 1 _ 1 0 1 0

因此校验位为1  即得到0 1 1 1 0 0 1 _ 1 0 1 0

位置8用来校验最右边数第4位为1的位置8 9 10 11 12标记为_ _ 1 _ 0 0 1 _ 1 0 1 0

因此校验位为0  即得到0 1 1 1 0 0 1 0 1 0 1 0

 

在末尾加一位全部位校验位,即可实现double error detecting

原文地址:https://www.cnblogs.com/yiyedada/p/6097991.html