- CRC多项式是为了生成一个除数,这个除数是模二运算的除数
- 示例:, 多项式生成的二进制序列位数是最高次幂加一,即6位,即从第0位开始到第5位,多项式中为0的位已经省略,原式为:(0次幂为1),幂次数也即其位置,即:100101
如上,生成的二进制序列即为crc检验用到的除数,而crc校验码即数据补0后除(模二运算除)以这个除数后的余数,检验码位数比除数少一位,余数不足的位用0补足,数据补0即在原始数据后加上除数位数减一的0.
示例:原始数据:10110011, 多项式:
多项式生成除数序列:11001
原始数据补零:10110011 0000 (除数为五位,故补4个0)
10110011 0000 除以 11001 = 0100,即校验码:0100
原理:
- 原始数据+crc校验码发送给接收端,即该序列除以多项式生成的除数得到余数为0
- 接收端用收到的数据除以多项式生成的除数,若余数为0则数据正确,否则数据出错
应用举例:
数据 aabbcc,校验码4523
数据加上校验一起,校验码(顺序倒置是大小端影响)0000