1、奇偶校验码
定义:在编码中增加一位校验码,使编码中1的个数为奇数(奇校验)或偶数(偶校验)。
【例题1】
已知字符T的ASCII码值的十进制表示为84,如果将最高位设置为奇校验位,则字符M的ASCII码值设置奇校验位后,它的二进制表示为( )
A.01001101 B.11001101 C.01101011 D.10111101
【解答】应选B
奇偶校验位是这样的:若数据的二进制值中含奇数个1,则奇偶校验为0,若含偶数个1,则奇偶校验为1。
M的ASCII码77,二进制表示为01001101,里面有4个1所以奇偶校验取值为1,设置于最高位后就是B了。
【例题2】
已知某字符的编码为 “0100101 ”,若最高位增加一个偶校验位,则其编码变为 (9) 。
A.10100101
B.11001010
C.01000110
D.01010101
【解答】A
2、海明码
海明码(Hamming Code )编码的关键是使用多余的奇偶校验位来识别一位错误。
【2009上半年软件设计师上午试题01】
海明校验码是在n个数据位之外增设k个校验位,从而形成一个k+n位的新的码字,使新的码字的码距比较均匀的拉大。n与k的关系是:2的k次方-1>=n+k
因为校验码是在新的码字的2的k次方位上,有以上关系。
码字(Code Word) 按如下方法构建:
1、把所有2的幂次方的数据位标记为奇偶校验位(编号为1, 2, 4, 8, 16, 32, 64等的位置)
2、其他数据位用于待编码数据. (编号为3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17等的位置)
3、每个奇偶校验位的值代表了代码字中部分数据位的奇偶性,其所在位置决定了要校验和跳过的比特位顺序。 位置1:校验1位,跳过1位,校验1位,跳过1位(1,3,5,7,9,11,13,15,…)
位置2:校验2位,跳过2位,校验2位,跳过2位 (2,3,6,7,10,11,14,15,…)
位置4:校验4位,跳过4位,校验4位,跳过4位 (4,5,6,7,12,13,14,15,20,21,22,23,…)
位置8:校验8位,跳过8位,校验8位,跳过8位(8-15,24-31,4