vb 十六进制转换十进制
PrivateSubCommand1_Click()Text2.Text=Val("&h"&Text1.Text)EndSubPrivateSubForm_Load()T...
Private Sub Command1_Click()
Text2.Text = Val("&h" & Text1.Text)
End Sub
Private Sub Form_Load()
Text1.Text = "ffff"
End Sub
为什么text2是-1?
8个f的时候text也是-1,这是什么情况? 展开
Text2.Text = Val("&h" & Text1.Text)
End Sub
Private Sub Form_Load()
Text1.Text = "ffff"
End Sub
为什么text2是-1?
8个f的时候text也是-1,这是什么情况? 展开
2个回答
展开全部
-1是 &hFFFF的十进制补码
追问
那这个问题应该怎么解决啊?我是个新手。。。
追答
Private Sub Command1_Click()
Text2.Text = hex2dec(Text1.Text)
End Sub
Private Sub Form_Load()
Text1.Text = "ffff"
End Sub
'把16进制数转换成10进制数
Public Function hex2dec(s As String) As Long
Dim i As Long, a As Variant, k As Long
k = 0
For i = Len(s) - 1 To 0 Step -1
a = Asc(UCase(Mid(s, i + 1, 1))) '统一求得各个字符的小写状态下的字符所对应的ASCII值
a = IIf(a >= 48 And a <= 57, a - 48, a - 55)
'0的ASCII码为48,字母a的ASCII码为65,而16进制下的A对应为10进制下的10
k = k + (16 ^ i) * a '累加
Next
hex2dec = k '得到的这个返回值 K 就是转换后的10进制数
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询