求助高手,关于CRC16校验与16进制问题!!

感谢所有来看此贴的人,能够回复的更是感激不尽!!

我刚学VB,用在工程中上位机与仪表间的通讯

第一个问题:

上位机与仪表通讯时上位机发送:
8181520000005300
其中:8181为仪表地址,52为读指令,5300为CRC校验
请问:我如果将8181改为8282时,CRC校验应是多少,是如何计算的??

第二个问题:

dim d(0) as byte
    d = mscomm1.input
    for i = o to 9
        a = a + hex(str$(d(i)))
    next i
    text2.text = a

这时,假如仪表显示242.9时,
      上位机正确应显示为:7d0964000003e803ca10  高位在后,低位在前
            而我的则显示:7d09064000003
      可以看出,将097d转换为10进制后显示2429,只是与仪表一致,其它数据不对

      更严重的在后面:
      假如仪表显示270.6时,
      正确显示应为:920a64000003e803df11
      而我的则显示:3f06400000303f

    连显示值都不一样了,我发现仪表显示值在270以下时,仪表传上的数据则是正确的,高于此值就全乱了。
请高手指点!!
最后编辑2005-09-26 20:36:32