这是从一个门禁系统软件中的一个函数,
Private Function gCRCHi(Index As Long) As Byte
Dim X, Y As Byte
Dim hexStr As String
Dim CRCHi(15, 15)
'高位CRC
CRCHi(0, 0) = &H0: CRCHi(0, 1) = &HC0: CRCHi(0, 2) = &HC1: CRCHi(0, 3) = &H1:.........RCHi(15, 3) = &H45: CRCHi(15, 4) = &H87: CRCHi(15, 5) = &H47: CRCHi(15, 6) = &H46: CRCHi(15, 7) = &H86: CRCHi(15, 8) = &H82: CRCHi(15, 9) = &H42: CRCHi(15, 10) = &H43: CRCHi(15, 11) = &H83: CRCHi(15, 12) = &H41: CRCHi(15, 13) = &H81: CRCHi(15, 14) = &H80: CRCHi(15, 15) = &H40hexStr = Hex(Index)
Dim ten As String, sig As String
Dim tenbit As Byte, sigbit As Byte
If hexStr <> "" Then
sig = Mid(hexStr, Len(hexStr), 1)
If Len(hexStr) > 1 Then
ten = Mid(hexStr, Len(hexStr) - 1, 1)
Else
ten = 0
X = 0
End If
Select Case sig
Case "A"
sigbit = 10
Case "B"
sigbit = 11
Case "C"
sigbit = 12
Case "D"
sigbit = 13
Case "E"
sigbit = 14
Case "F"
sigbit = 15
Case Else
sigbit = Val(sig)
End Select
Y = sigbit
If Len(hexStr) > 1 Then
Select Case ten
Case "A"
tenbit = 10
Case "B"
tenbit = 11
Case "C"
tenbit = 12
Case "D"
tenbit = 13
Case "E"
tenbit = 14
Case "F"
tenbit = 15
Case Else
tenbit = Val(ten)
End Select
X = tenbit
End If
gCRCHi = CRCHi(X, Y)
End If
End Function我想问问CRCHi(0, 0) = &H0: 是什么意思?还有&是什么意思〉?
Private Function gCRCHi(Index As Long) As Byte
Dim X, Y As Byte
Dim hexStr As String
Dim CRCHi(15, 15)
'高位CRC
CRCHi(0, 0) = &H0: CRCHi(0, 1) = &HC0: CRCHi(0, 2) = &HC1: CRCHi(0, 3) = &H1:.........RCHi(15, 3) = &H45: CRCHi(15, 4) = &H87: CRCHi(15, 5) = &H47: CRCHi(15, 6) = &H46: CRCHi(15, 7) = &H86: CRCHi(15, 8) = &H82: CRCHi(15, 9) = &H42: CRCHi(15, 10) = &H43: CRCHi(15, 11) = &H83: CRCHi(15, 12) = &H41: CRCHi(15, 13) = &H81: CRCHi(15, 14) = &H80: CRCHi(15, 15) = &H40hexStr = Hex(Index)
Dim ten As String, sig As String
Dim tenbit As Byte, sigbit As Byte
If hexStr <> "" Then
sig = Mid(hexStr, Len(hexStr), 1)
If Len(hexStr) > 1 Then
ten = Mid(hexStr, Len(hexStr) - 1, 1)
Else
ten = 0
X = 0
End If
Select Case sig
Case "A"
sigbit = 10
Case "B"
sigbit = 11
Case "C"
sigbit = 12
Case "D"
sigbit = 13
Case "E"
sigbit = 14
Case "F"
sigbit = 15
Case Else
sigbit = Val(sig)
End Select
Y = sigbit
If Len(hexStr) > 1 Then
Select Case ten
Case "A"
tenbit = 10
Case "B"
tenbit = 11
Case "C"
tenbit = 12
Case "D"
tenbit = 13
Case "E"
tenbit = 14
Case "F"
tenbit = 15
Case Else
tenbit = Val(ten)
End Select
X = tenbit
End If
gCRCHi = CRCHi(X, Y)
End If
End Function我想问问CRCHi(0, 0) = &H0: 是什么意思?还有&是什么意思〉?
CRCHi(0, 0) = &H0
CRCHi(0, 1) = &HC0
就是把两个语句写到一行,其余类推。
&H0 表示“0”是16进制数。