可参考:http://winda.blog.51cto.com/55153/1068000
Hamming校验码作用:用于校验通信数据,防止出现错误,并具有一定的纠错功能。
汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。
1,获取最小校验码位数:对于有n个信息位的信息,需要k个校验位,满足:2^k-1>=n+k;使k最小即可得出n个信息位所需最小的校验码数;
2,确定校验码所在位置:共有(n+k)个位串,即校验码所在位和信息所在位;只要确定校验码,剩下的位就是信息位。校验码位在从左起的第2^k位处;
3,确定每一位校验码的值:这与其要校验的位有关,第i位的校验规则,从自身起连续校验i位,然后跳过i位,再连续校验i位,再跳过i位,...以此推理。整个校验序列中只有校验位是不确定的,最后根据是奇校验还是偶校验确定校验位的值。
4,如何校验字串:各位校验码对其所校验的位进行异或运算,若整个码字不发生差错,在偶校验下各组结果应为0,在奇校验下各组结果应为1;
5,如何纠错:由于汉明校验码是一种多重校验码,所以可以确定是哪位出错,直接对该位取反即可。