VB中16进制与10进制相互转化,该怎么处理

如题所述

10进制转16进制的话可以使用HEX()函数,16进制转10进制没有现成函数,可以使用如下代码实现:

' 用途:将十六进制转化为十进制

' 输入:Hex(十六进制数)

' 输入数据类型:String

' 输出:HEX_to_DEC(十进制数)

' 输出数据类型:Long

' 输入的最大数为7FFFFFFF,输出的最大数为2147483647

Public Function HEX_to_DEC(ByVal Hex As String) As Long

Dim i As Long

Dim B As Long

Hex = UCase(Hex)

For i = 1 To Len(Hex)

Select Case Mid(Hex, Len(Hex) - i + 1, 1)

Case "0": B = B + 16 ^ (i - 1) * 0

Case "1": B = B + 16 ^ (i - 1) * 1

Case "2": B = B + 16 ^ (i - 1) * 2

Case "3": B = B + 16 ^ (i - 1) * 3

Case "4": B = B + 16 ^ (i - 1) * 4

Case "5": B = B + 16 ^ (i - 1) * 5

Case "6": B = B + 16 ^ (i - 1) * 6

Case "7": B = B + 16 ^ (i - 1) * 7

Case "8": B = B + 16 ^ (i - 1) * 8

Case "9": B = B + 16 ^ (i - 1) * 9

Case "A": B = B + 16 ^ (i - 1) * 10

Case "B": B = B + 16 ^ (i - 1) * 11

Case "C": B = B + 16 ^ (i - 1) * 12

Case "D": B = B + 16 ^ (i - 1) * 13

Case "E": B = B + 16 ^ (i - 1) * 14

Case "F": B = B + 16 ^ (i - 1) * 15

End Select

Next i

HEX_to_DEC = B

End Function

扩展资料:

在VB中将十进制转化为十六进制的函数:

输入:Dec(十进制数)'

输入数据类型:Long'

输出:D2H(十六进制数)'

输出数据类型:String'

输入的最大数为2147483647,

输出最大数为7FFFFFFFPublicFunction D2H(Dec As Long) As String

Dim a As String

D2H = ""

Do While Dec > 0

a = CStr(Dec Mod 16)         Select Case a             Case "10": a = "A"

Case "11": a = "B"

Case "12": a = "C"

Case "13": a = "D"

Case "14": a = "E"

Case "15": a = "F"

End Select

D2H = a & D2H

Dec = Dec \ 16     LoopEnd Function

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-05

10转16用HEX()函数,16转10没有现成函数,要自己写

' 用途:将十六进制转化为十进制
' 输入:Hex(十六进制数)
' 输入数据类型:String
' 输出:HEX_to_DEC(十进制数)
' 输出数据类型:Long
' 输入的最大数为7FFFFFFF,输出的最大数为2147483647
Public Function HEX_to_DEC(ByVal Hex As String) As Long
   Dim i As Long
   Dim B As Long
   
   Hex = UCase(Hex)
   For i = 1 To Len(Hex)
       Select Case Mid(Hex, Len(Hex) - i + 1, 1)
           Case "0": B = B + 16 ^ (i - 1) * 0
           Case "1": B = B + 16 ^ (i - 1) * 1
           Case "2": B = B + 16 ^ (i - 1) * 2
           Case "3": B = B + 16 ^ (i - 1) * 3
           Case "4": B = B + 16 ^ (i - 1) * 4
           Case "5": B = B + 16 ^ (i - 1) * 5
           Case "6": B = B + 16 ^ (i - 1) * 6
           Case "7": B = B + 16 ^ (i - 1) * 7
           Case "8": B = B + 16 ^ (i - 1) * 8
           Case "9": B = B + 16 ^ (i - 1) * 9
           Case "A": B = B + 16 ^ (i - 1) * 10
           Case "B": B = B + 16 ^ (i - 1) * 11
           Case "C": B = B + 16 ^ (i - 1) * 12
           Case "D": B = B + 16 ^ (i - 1) * 13
           Case "E": B = B + 16 ^ (i - 1) * 14
           Case "F": B = B + 16 ^ (i - 1) * 15
       End Select
   Next i
   HEX_to_DEC = B
End Function

如满意,请采纳,谢谢。

第2个回答  推荐于2018-02-27

10进制转16进制

Dim d As Long, h as String
d = 12345
h = Hex(d)

16进制转10进制

Dim h As String, d As Long
h = "3A7D"
d = Val("&H" & h)

本回答被网友采纳
相似回答