曾在网上找了很多资料,但一些细节都没有说,导致自己计算结果和一些CRC软件计算结果不一样。于是用了2天的时间,研究了以下CRC,在此记录以下。希望能给对此有疑惑的朋友一些帮助,如有问题可以提出,我会给我我的理解。
原理:将二进制串和CRC生成多项式做多项式除法操作,最后得到的余数就是该串的CRC值.除法过程中余数是采用异或运算的结果.举例如下:
CRC生成多项式:10011(生成多项式首项和末尾项必须为1,规定为这样,别问为什么)
目标串:1010100110101000111111011
除法过程:
1010100110101000111111011
异或10011
----------
0011000110101000111111011
异或 10011
----------
01011110101000111111011
异或10011
----------
0010010101000111111011
10011
----------
00001101000111111011
10011