1.将n位有效信息编码为多项式M(x)
其中=0或1,表示第i位的信息(i=0,1,2,3...,n-1)
2.选择一个k+1位的生成多项式G(x)作为约定除数
3.把M(x)左移k位,可以得到n+k位的,然后用
按模2除法除以G(x),得到k位余数R(x)
4.将与余数R(x)做模2加,得到
注意:在模2加时,R(x)+R(x)=0
在的后k位拼接k位的R(x),就得到了n+k位的CRC码
例题
已知有效信息位1010B,生成多项式为G(x)=x3+x+1,求CRC校验码
解:(1).将n位有效信息编码为信息多项式M(x):M(x)=1010B=x3+x1;
(2).选择k+1位的生成多项式G(x)作为约定除数:G(x)=x3+x+1=1011B;
(3).把M(x)左移k位,可得到n+k位的M(x)·x3=1010000B;
M(x)·x3模2除以G(x)得到余数R(x)=011B
(4).将M(x)·R(x)与余数R(x)做模2加,把R(x)拼接到M(x)·x3的后3位,得到CRC校验码为
求得CRC循环码为 1010011B
注意事项:
(1)B表示二进制
(2)二进制减法取异或,即减数与被减数相同取0,减数与被减数不同则取1