CRC校验的快速掌握
知识储备
二进制模2除法与二进制除法不同。 模2运算:加法不进位,减法不借位。 二进制除法: 带借位的二进制除法,根据余数减除数够减与否,确定商1还是商0,若够减则商1,否则商0。 二进制模2除法: 采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义 的。实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。(1)一步步的计算方法:
-
CRC校验码手动计算方法
若信息码字为10110011,生成多项式 G(X)=X4+X3+1,则计算出的 CRC 校验码为 () 。解析:
(1)生成多项式G(X) 对应的二进制数为 11011(有X的几次方,对应位上就是1)
(2)校验码的位数就是生成多项式的最高冥次,即该生成多项式产生的校验码为4位
(3)由于校验码的位数为4位,因此需要在信息码后面补4个0,即信息码为101100110000
(4)用补位后的信息码除以生成多项式(用“模2除法”(其实就是亦或^),得到的余数即为CRC校验码。
(5)发送端发送的信息:CRC^101100110000 = 101100110100 。即发送给客户端的数据为101100110100
(6)接收端用收到的数据除以生成多项式(模2除法),余数为0则说明无差错