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

 我来答
59分粑粑分享生活
高粉答主

2020-02-26 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119816

向TA提问 私信TA
展开全部

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

魔法软糖™
2016-12-05 · TA获得超过837个赞
知道小有建树答主
回答量:822
采纳率:94%
帮助的人:144万
展开全部

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

如满意,请采纳,谢谢。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网海1书生
科技发烧友

推荐于2018-02-27 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部

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)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式