Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。
完整的CRC-32标准所包含的内容:
引用
Name : "CRC-32"
Width : 32
Poly : 04C11DB7
Initial value : FFFFFFFF
Reflected : True
XOR out with : FFFFFFFF
下面是CRC-16标准:
引用
Name : "CRC-16"
Width : 16
Poly : 8005
Initial value : 0000
Reflected : True
XOR out with : 0000
下面的多项式值的得到,是通过对Poly逆向计算得到的:
引用
0000 0100 1100 0001 0001 1101 1011 0111-->
0 4 C 1 1 D B 7 |========04C11DB7
1110 1101 1011 1000 1000 0011 0010 0000
E D B 8 8 3 2 0 ========EDB88320
具体实现如下:
vi