crc任意位生成多项式
任意位运算
自适应算法
循环冗余校验码(CRC,Cyclic Redundancy Code)是采用多项式的
编码方式,这种方法把要发送的数据看成是一个多项式的系数
,数据为bn-1bn-2…b1b0 (其中为0或1),则其对应的多项式为:
bn-1Xn-1+bn-2Xn-2+…+b1X+b0
例如:数据“10010101”可以写为多项式
X7+X4+X2+1。
循环冗余校验CRC
循环冗余校验方法的原理如下:
(1) 设要发送的数据对应的多项式为P(x)。
(2) 发送方和接收方约定一个生成多项式G(x),设该生成多项式
的最高次幂为r。
(3) 在数据块的末尾添加r个0,则其相对应的多项式为M(x)=XRP(x)
。(左移r位)
(4) 用M(x)除以G(x),获得商Q(x)和余式R(x),则 M(x)=Q(x)
×G(x)+R(x)。
(5) 令T(x)=M(x)+R(x),采用模2运算,T(x)所对应的数据是在原数
据块的末尾加上余式所对应的数据得到的。
(6) 发送T(x)所对应的数据。
(7) 设接收端接收到的数据对应的多项式为T’(x),将T’(x)除以G(x)
,若余式为0,则认为没有错误,否则认为有错。
标签:
crc
CRC
多项式
位运算
上传时间:
2014-11-28
上传用户:宋桃子