CRC校验码计算详解
(网络工程师考试必备)
以实例说明:2008年下半年上午试题(18)。
采用CRC进行差错检验,生成多项式为G(X)=X4+X+1,信息码字为10110,则计算出的CRC校验码是:
A. 0000 B. 0100 C. 0010 D.1111
【分析】
符号表示假定:多项式和多项式的系数排列均用相同的符号表示,如
G(X)= X4+X+1
G(X)=10011
1.已知条件如下:
原码字记做M(X),即:M(X) = 10110
生成多项式记做G(X),即:G(X) = 10011
G(X)的最高阶数记做r,此处r = 4
2.计算步骤
(1)计算XrM(X)
也就是把M(X)的尾部添加r个0
XrM(X) = 10110 0000
(2)计算XrM(X)长除G(X),余数记做Y(X)
这里的“长除”计算方法如下:
XrM(X) 10110 0000
-- G(X) 10011 (注意位对应方式,对应位进行异或运算即可)
00101 0000
-- G(X) 100 11 (计算方法同上)
001 1100
-- G(X) 100 11
01111 (此数已经小于G(X),计算到此为止,即Y(X))
注意Y(X)的位数为r(此处为4),所以Y(X) = 1111
Y(X)即是CRC校验码。
(3) 计算传输码字T(X) = XrM(X)-Y(X)
计算方法:在M(X)末尾连接上Y(X)即可
即:T(X) = 10110 1111
【答案】
此题只要计算出校验码Y(X)即可。正确答案为:D