当前位置:编程学习 > VB >>

求16进制转换问题


vb中使用"&H"将16进制字符串80079C6D进行转换,得到的是一个负值。如何将80079C6D转为2147982445(计算器或EXCEL转换出来的数值),而不是负值。 要用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
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,