以下关于校验码的叙述中,正确的是 ( ) 。
A.海明码利用多组数位的奇偶性来检错和纠错
B.海明码的码距必须大于等于1
C.循环冗余校验码具有很强的检错和纠错能力
D.循环冗余校验码的码距必定为1
参考答案:
海明码使用多组数位进行异或运算来检错和纠错。不过,异或也可以当做是奇偶计算,因此A可以算是正确的。
B的错误在于码距不能等于1。
C的错误在于CRC不具有纠错能力。
取两个相近的码字,如0和1,再随便用个生成多项式(如101)进行计算,可以看出即使要传输的码字的码距为1,但整个编码(原数据+CRC校验码)的码距必定大于1。如果码距可以等于1的话,那么就意味着CRC编码可能无法检查出一位的错误。因此D也是错误的。
不过,D的表达存在不严谨的地方。如果将题目中的“循环冗余校验码”定为整个编码(原数据+CRC校验码),则D是错误的。如果将题目中的“循环冗余校验码”定为CRC校验码,则D是正确的。
答案:A