求16进制转换问题
vb中使用"&H"将16进制字符串80079C6D进行转换,得到的是一个负值。如何将80079C6D转为2147982445(计算器或EXCEL转换出来的数值),而不是负值。
[解决办法]
本帖最后由 bcrun 于 2013-12-31 15:14:26 编辑 要用Double类型了
Dim s As String
s = "80079C6D"
Dim d As Double
d = Val("&H" & Left(s, 7)) * 16.0 + Val("&H" & Right(s, 1))
Private Function GetULONG(HexText As String) As Double
On Error GoTo E_Handle
Dim V As Long
V = CLng("&H" & HexText)
E_Handle:
If (V And &H80000000) Then
GetULONG = 4294967296# + V
Else
GetULONG = V
End If
End Function
Private Sub Command1_Click()
' 应用示例:
MsgBox GetULONG("80079C6D")
End Sub