1.long数据类型相关函数,以下函数来自网络,具体来源网站未做记录,仅做了简单测试。
'将16进制字符串转换为Long整型数据
Public Function HEX_to_DEC(ByVal Hex As String) As Long
Dim i As Long
Dim B As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": B = B + 16 ^ (i - 1) * 0
Case "1": B = B + 16 ^ (i - 1) * 1
Case "2": B = B + 16 ^ (i - 1) * 2
Case "3": B = B + 16 ^ (i - 1) * 3
Case "4": B = B + 16 ^ (i - 1) * 4
Case "5": B = B + 16 ^ (i - 1) * 5
Case "6": B = B + 16 ^ (i - 1) * 6
Case "7": B = B + 16 ^ (i - 1) * 7
Case "8": B = B + 16 ^ (i - 1) * 8
Case "9": B = B + 16 ^ (i - 1) * 9
Case "A": B = B + 16 ^ (i - 1) * 10
Case "B": B = B + 16 ^ (i - 1) * 11
Case "C": B = B + 16 ^ (i - 1) * 12
Case "D": B = B + 16 ^ (i - 1) * 13
Case "E": B = B + 16 ^ (i - 1) * 14
Case "F": B = B + 16 ^ (i - 1) * 15
End Select
Next i
HEX_to_DEC = B
End Function
'将Long整型数据转换为16进制字符串
Public Function DEC_to_HEX(Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
If Dec = 0 Then '为零时处理
DEC_to_HEX = "00"
Exit Function
End If
Do While Dec > 0
a = CStr(Dec Mod 16)
Select Case a
Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
If Len(DEC_to_HEX) Mod 2 <> 0 Then '补零操作
DEC_to_HEX = "0" & DEC_to_HEX
End If
End Function
2.求整型数据的高位值与低位值,因vb中未找到无符号整型的数据类型,下面的例子用Long数据类型来进行替代。数据范围在(0-65535)之间。
Private Sub btnTest_Click()
Dim iValue As Long
Dim iHighValue As Byte
Dim iLowValue As Byte
iValue = 65000
iHighValue = ((iValue And &HFF00) \ &H100) And &HFF
iLowValue = iValue And &HFF
End Sub
上面相关的方法仅作为记录,便于以后查找。