crc校验码计算例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
crc校验码计算例题
1、若信息码字为11100011,生成多项式G(X)=X5+X4+X+1,则计算出的CRC 校验码为?x的最高次幂5则信息码(被除数)补五个0为:1110001100000 除数为110011
------------10110110
---------------------
110011/1110001100000
-------110011
------------------
---------101111
---------110011
------------------
----------111000
----------110011
------------------
------------101100
------------110011
------------------------
-------------111110
-------------110011
-------------------------
---------------11010
2、信息码为101110101,生成多项式X4+X2+1,求冗余位
算法同上被除数补四个0 为:1011101010000 除数为:10101
答案:1100
7E 00 05 60 31 32 33 计算CRC16结果应该是:5B3E
方法如下:
CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0),之后对CRC寄存器从
高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。1.设置CRC寄存器,并给其赋值FFFF(hex)。
2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。
4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。
5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。
6.重复第2至第5步直到所有数据全部处理完成。
7.最终CRC寄存器的内容即为CRC值。
CRC(16位)多项式为X16+X15+X2+1,其对应校验二进制位列为1 1000 0000 0000 0101。