http://www.codeguru.com/algorithms/crc32.html
CRC32: Generating a checksum for a file - Brian Friesen (2002/01/02)
This article describes what a CRC is, how to generate them, what they can be used for, and lastly source code showing how it's done.
CRC32: Generating a checksum for a file - Brian Friesen (2002/01/02)
This article describes what a CRC is, how to generate them, what they can be used for, and lastly source code showing how it's done.
产生CRC的过程是:
1.将一个16位寄存器的值置为FFFF(十六进制),所有位都值为1.称之为CRC寄存器.
2.将信息的第一个8位与CRC寄存器的低位字节
3.CRC寄存器向右移动一位(向着最低位LSB),最高位MSB用0填充。然后提取和校验LSB。
4。(如果LSB是0):重复步骤3(另一个移位。
(如果LSB是1):把CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或运算操作。
5。重复步骤3和步骤4,直到完成8个移位。此过程完成后,第一个完整的8位字节就处理完成。
6。重复步骤2到5,处理信息的下一个8位字节。连续地重复以上过程,直到所有的字节都处理完毕。
7。CRC寄存器中的最后内容就是信息的CRC的值。
我所发送的例子是:
域名 例子(十六进制) RTU(8-位域)
头 无
从机地址 06 0000 0110
功能 03 0000 0011
字节记数 06 0000 0110
开始地址高位 00 0000 0000
开始地址低位 6B 0110 1011
寄存器个数高位 00 0000 0000
寄存器个数低位 03 0000 0011
错误校验 CRC(16bits)
跟踪器 无
总字节数: 11 我的问题是如何用VB语言来实现上面的CRC校验函数?
能告述我么?
谢谢!!!