【答案解析】本题考查海明码相关的知识。
海明码是奇偶校验的另一种扩充。和上面提到的奇偶校验的不同之处在于海明码采用多位校验码的方式,在这些多个校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验的位组合,可以达到发现错误、纠正错误的目的。
假设数据位有m位,如何设定校验位(冗余位)k的长度才能满足纠正一位错误的要求呢?这里做一个简单的推导。
k位的校验码可以有2
k
个值。显然,其中一个值表示数据是正确的,而剩下的2
k
-1个值意味着数据中存在错误,如果能够满足:2
k
-1>m+k(m+k为编码后的数编总长度),则在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现了问题。
当m=4时,计算得k=3。
校验方程是指示每个校验位对相应的信息位进行校验的等式。
确定了k的值后,如何确定k位中的每一位对哪些数据进行校验呢?这是一个问题。上面的推导只是说能够做到,那么如何达到纠错的目的呢?一般考试中都会列出海明校验方程。例如:
其中,
