Dim SendFrame(19)  As ByteSendFrame(0) = &HFE
SendFrame(1) = &H68
SendFrame(2) = ab(0)
SendFrame(3) = ab(1)
SendFrame(4) = ab(2)
SendFrame(5) = ab(3)
SendFrame(6) = ab(4)
SendFrame(7) = ab(5)
SendFrame(8) = &H68
SendFrame(9) = &H4
SendFrame(10) = &H7
SendFrame(11) = &HC + &H33
SendFrame(12) = &H1C
SendFrame(13) = &H0 + &H33
SendFrame(14) = &H11 + &H33
SendFrame(15) = &H11 + &H33
SendFrame(16) = &H11 + &H33
SendFrame(17) = &H1 + &H33
Dim CheckCode As ByteCheckCode = &H0For i = 0 To 19CheckCode = (CheckCode + SendFrame(i)) Mod &H100
Next
CheckCode = CheckCode Mod &H100''这行我是为了求前面18个元素的和与256的模,但是出错,说CheckCode 益处,那该着呢们解决呢,我这种求模的方法对不
CheckCode
SendFrame(18) = CheckCode
SendFrame(19) = &H16
谢谢

解决方案 »

  1.   

    Dim CheckCode As Byte
    Dim CheckCode1 As LongCheckCode1 = &H0For i = 0 To 19CheckCode1 = (CheckCode1 + SendFrame(i)) Mod &H100
    Next
    CheckCode = CheckCode1 Mod &H100''
      

  2.   

    H100超出了Byte的范围,运算结果至少是Integer
    Dim CheckCode As Byte
    Dim tmpInt As IntegertmpInt = &H0For i = 0 To 19
        tmpInt = (tmpInt + SendFrame(i)) Mod &H100
    Next
    CheckCode = tmpInt Mod &H100
      

  3.   

    溢出就是指你所定义的变量的类型不对,Dim CheckCode As Byte是字节型,但你算出来的结果并不是字节型。建议将CheckCode定成整型
      

  4.   

    Dim CheckCode As long就可以.
      

  5.   

    Dim CheckCode As long就可以.