和海明码, 上面是发送方的处理 在接收方,也可根据这三个校验方程对接收到的信息进行同样的奇偶测试: A=B1⊕B3⊕B5⊕B7=0; B=B2⊕B3⊕B6⊕B7=0; C=B4⊕B5⊕B5⊕B7=0。 若三个校验方程都成立,即方程式右边都等于 0,则说明没有错。若不成立即方程式右边 不等于 0,说明有错。从三个方程式右边的值,可以判断那一位出错。例如,如果第 3 位数字 x 2 x 3 x x x 4 x 5 x x x 6 7 x x x 反了,则 C=0(此方程没有 B3),A=B=1(这两个方程有 B3)。可构成二进数 CBA,以 A 为最低有 效位,则错误位置就可简单地用二进数 CBA=011 指出。 同样,若三个方程式右边的值为 001,说明第 1 位出错。若三个方程式右边的值为 100, 说明第 4 位出错。 海明码的码距应该是 3,所以能纠正 1 位出错。而奇偶校验码的码距才是 2,只能发现 1 位出错,但不能纠正(不知道那一位错)。无校验的码距是 1,它出任何一位出错后还是合法 代码,所以也就无法发现出错。 这是关于海明码的经典说法,即码距为 3,可以发现 2 位,或者纠正 1 位错。应满足 k 2 -1≥m+k。 但在清华的王爱英主编的《计算机组成与结构》(该书已成为国内的权威)中还提出了 (k-1) 一种码距为 4 的海明码,可以发现 2 位,并且纠正 1 位错。应满足 2 ≥m+k。 由于王爱英书上对这两种概念没有很仔细解释(特别对码距为 3 的海明码),过渡很突 然。有些书简单抄袭时没有仔细消化,所以出现一些概念错。对于一般码距为 3 的海明码,应 该是“可以发现 2 位,或者纠正 1 位错”,而不是“可以发现 2 位,并且纠正 1 位错”。在试 题中出现过类似的错误。 这是关于海明码的经典说法,即码距为 3,可以发现 2 位,或者纠正 1 位错。应满足 k 2 -1≥m+k。 但在清华的王爱英主编的《计算机组成与结构》(该书已成为国内的权威)中还提出了 (k-1) 一种码距为 4 的海明码,可以发现 2 位,并且纠正 1 位错。应满足 2 ≥m+k。 由于王爱英书上对这两种概念没有很仔细解释(特别对码距为 3 的海明码),过渡很突 然。有些书简单抄袭时没有仔细消化,所以出现一些概念错。对于一般码距为 3 的海明码,应 该是“可以发现 2 位,或者纠正 1 位错”,而不是“可以发现 2 位,并且纠正 1 位错”。在试 题中出现过类似的错误。