vb 中如何将十六进制变量转换成十进制变量

作者&投稿:度晨 (若有异议请与网页底部的电邮联系)
在VB中有没有直接将十六进制转换成十进制的函数~

任何一个数值转换函数都可以,比如:
Print Int(&HA0B8)
或者
Print CLng(&H79C0A3)
建议最好用Val函数(因为它可以容错):
Print Val(&HD2CA)
甚至乎你不用转换,VB也会自动按10进制来处理的:
Print &HABCD
还可以直接参与运算(16进制数相互之间运算或者与10进制数混合运算均可):
Print &H4F + 90
或者赋值给一个整型变量:
Dim x As Integer
x = &H1EB0
Print x
如果16进制数值是以字符串形式出现的,只要确保字符串的前面两个字符是“&H”即可,比如:
Dim x As Integer
x = "1EB0"
这样是错误的,因为字符串是不可以直接赋值给整形变量的。如果是下面这样就没毛病:
x = "&H1EB0"
VB会自动按16进制数来处理这个字符串并自动转换为10进制后赋值给变量x

可以使用 val("&H" & Text1.text) 来转文本框的16进制内容转换成数字,想到得到数字的16进制字符串可以使用hex函数
dim UDS_TXID_P,UDS_RXIDUDS_TXID_P = Val("&H" & Text1.text)UDS_RXID = Val("&H" & Text2.text)'想要以16进制输出,则如下print hex(UDS_TXID_P)pritn hex(UDS_RXID)

VB可在16进制数字符串前加&H前缀拼接就可将其表示是16进制的数,在计算机内部就是一个十进制数。

  • 适当范围内的数字,前缀以 &H,可以直接表示十六进制数字。例如,十六进制表示法的 &H10
    代表十进制的 16。

  • 执行以下代码。

    Private Sub Form_Click()
        Dim a As Long
        a = &H1234
        Debug.Print &H1234
    End Sub
    VB立即窗口输出十进制数4660。


不用转换啊,如下面的程序
Private Sub Form_Click()
Dim i, j As Integer
i = &H1C //虽然赋予的是16进制的1c
Print i //但用print输出时系统会变回10进制输出
j = i //而如果把i赋予j值
Print j //j输出一样是10进制的值
End Sub

十进制,八进制和十六进制互化应以二进制作为桥梁 1.十进制转化成二进制: 您只需要看一眼数据类型的定义和进制之间的转换就明白。