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.

解决方案 »

  1.   

    我现在作的课题是主机监控变频器,而且是用VB6.0变的上位桌面.现在问题是里面的一个CRC校验函数被难倒了!
    产生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校验函数?
    能告述我么?
    谢谢!!!