一、CRC校验码的概念
CRC即
循环冗余校验码,是数据通信领域中最常见的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
二、CRC校验码的算法
1、多项式和二进制的对应关系
X的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。
多项式包括生成多项式G(X)和信息多项式C(X)。
如生成多项式为G(X)=X4+X3+X+1,可转换为二进制数码11011。
发送信息位1111,可转换为数据多项式为C(X)=X3+X2+X+1。
2、校验码位数
CRC校验码位数=生成多项式位数-1。(注意有些生成多项式的简记式中将生成多项式的最高位1)
3、
生成步骤
1、将X的最高次幂为R的生成多项式G(X)转换成对应的R+1位二进制数。
2、将信息码左移