通讯校验: 在一个m位m二进制数据序列之后附加一个n位二进制校检码,构成一个总长为m+n的二进制序列。
一、奇偶校检:每个字节的校检码与该字节(包括校检码)中1的个数对应。
二、累加和校检:每个数据包的校检码为该数据包中所有数据忽略进位的累加和。
三、CRC-xx校检:
每个二进制序列的校检码为该序列与所选择的多项式模2除法的余数。
常用的CRC码的生成多项式为:
CRC8=X8+X5+X4+1
CRC-CCITT=X16+X12+X5+1
CRC16=X16+X15+X5+1
CRC12=X12+X11+X3+X2+1
CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1
eg:
数据:1010001101
多项式:110101
给数据后面补充(多项式长度-1)个0
接下来从左边第一个非0开始进行异或
取余数,余数长度 等于 多项式长度-1;如果余数长度<多项式长度-1,则在高位补0。即:01110
最终发送的数据:101000110101110
校验办法:101000110101110与多项式模2除法结果为0