用VB怎么把一个16进制数组转换成具体数值

比如用MSCOMM通信后得到一个16进制数值如“41 0C 0F A0”,要怎样才能讲其处理成正常的发动机转速呢?

Private Function 十六进制转十进制(ByVal 十六进制数 As String) As Integer
Dim 十六进制数组() As String
ReDim 十六进制数组(十六进制数.Length - 1)
Dim 返回值 As Integer
For 位数 As Integer = 0 To 十六进制数.Length - 1
十六进制数组(位数) = 十六进制数.Substring(位数, 1)
If 十六进制数组(位数) = "A" Or 十六进制数组(位数) = "a" Then 十六进制数组(位数) = 10
If 十六进制数组(位数) = "B" Or 十六进制数组(位数) = "b" Then 十六进制数组(位数) = 11
If 十六进制数组(位数) = "C" Or 十六进制数组(位数) = "c" Then 十六进制数组(位数) = 12
If 十六进制数组(位数) = "D" Or 十六进制数组(位数) = "d" Then 十六进制数组(位数) = 13
If 十六进制数组(位数) = "E" Or 十六进制数组(位数) = "e" Then 十六进制数组(位数) = 14
If 十六进制数组(位数) = "F" Or 十六进制数组(位数) = "f" Then 十六进制数组(位数) = 15
Next
Dim 幂值 As Integer = 十六进制数.Length - 1
For Each 每一位数 As Integer In 十六进制数组
返回值 += 每一位数 * 16 ^ (幂值)
幂值 -= 1
Next
Return 返回值
End Function
这是 .NET 的转换函数,你试试
温馨提示:答案为网友推荐,仅供参考
相似回答