1,502
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Function CRC16(data() As Byte) As Long
Dim r As Long
Dim hi As Byte
Dim flag As Byte
Dim i As Long
Dim j As Long
r = &HFFFF&
For j = 0 To UBound(data)
hi = r \ &H100&
hi = hi Xor data(j)
r = hi
For i = 1 To 8
flag = r And 1
r = r \ 2
If flag = 1 Then
r = r Xor &HA001&
End If
Next
Next
CRC16 = r
End Function
Sub Main()
Dim s As String
Dim a() As Byte
s = "ST=32;CN=2011;PW=123456;MN=0873HHMZWSLH02;CP=&&DataTime=20160103133030;060-Rtd=3.0943,060-Flag=N;011-Rtd=18.0412,011-Flag=N;001-Rtd=8.2137,001-Flag=N;B01-Rtd=10.9890,B01-Flag=N&&"
a = StrConv(s, vbFromUnicode)
Debug.Print Hex(CRC16(a))
End Sub
A9C1