首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求16进制转换有关问题

2014-01-03 
求16进制转换问题vb中使用&H将16进制字符串80079C6D进行转换,得到的是一个负值。如何将80079C6D转为21479

求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

热点排行