10进制和16进制是怎么换算的啊?

如果知道的话,讲讲10,2,8,16进制之间是怎么换算的好吗?

16转10进制,输入参数,最好用这样处理:字符串 = CStr(Hex2Dec(字符串))ok
Public Function Hex2Dec(ByVal InputData As String) As Double
If str_in(InputData, "0123456789ABCDEFabcdef") = False Then
Return 0
End If
InputData = UCase(InputData)
Dim temps As String
Dim i As Integer
Dim DecOut As Double
Dim HexStep As Double
For i = Strings.Len(InputData) To 1 Step -1
HexStep = HexStep * 16
If HexStep = 0 Then
HexStep = 1
End If
temps = Mid(InputData, i, 1)
Select Case temps
Case "0"
DecOut = DecOut + (0 * HexStep)
Case "1"
DecOut = DecOut + (1 * HexStep)
Case "2"
DecOut = DecOut + (2 * HexStep)
Case "3"
DecOut = DecOut + (3 * HexStep)
Case "4"
DecOut = DecOut + (4 * HexStep)
Case "5"
DecOut = DecOut + (5 * HexStep)
Case "6"
DecOut = DecOut + (6 * HexStep)
Case "7"
DecOut = DecOut + (7 * HexStep)
Case "8"
DecOut = DecOut + (8 * HexStep)
Case "9"
DecOut = DecOut + (9 * HexStep)
Case "A"
DecOut = DecOut + (10 * HexStep)
Case "B"
DecOut = DecOut + (11 * HexStep)
Case "C"
DecOut = DecOut + (12 * HexStep)
Case "D"
DecOut = DecOut + (13 * HexStep)
Case "E"
DecOut = DecOut + (14 * HexStep)
Case "F"
DecOut = DecOut + (15 * HexStep)
Case Else
Return 0
End Select
Next i
Return DecOut
End Function

'10转16进制,参数最好先用IsNumeric判断一下ok
Public Function Dec2Hex(ByVal InputData As String) As String
If IsNumeric(InputData) Then
Return Hex(CDbl(InputData))
Else
Return ""
End If
End Function
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-26
二进制是中间量
其他进制的转换可以通过二进制来沟通,比如10进制到16进制,可以先转到2进制(除二取余),然后每四位作为一个单元来转换到16进制,反过来,16进制每一位可以转换为一个四位2进制数,然后对每一位二进制数乘以该位的权,就得到相应的十进制数