当前位置:文档之家› 进制转换大全

进制转换大全

一、方式一
【格式】十进制=Val("&H"+"十六进制")
【举例】
eg:
a = 15
b= Val("&H" + Str(a))
eg:
106=Val("&H"+"6A")

eg:
str10 = Hex("106") '6A

二、自定义进制转换函数
'16进制转化为10进制(自定义)
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


十进制=Val("&O"+"八进制")
Text13.Text = Val("&O" & Text15.Text)

【调用】
Text18.Text = BIN_to_DEC(Text20.Text)

【函数】
'(二)2进制转10进制(自定义)
Public Function BIN_to_DEC(ByVal Bin As String) As Long
Dim i As Long
For i = 1 To Len(Bin)
BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
Next i
End Function

1.'十六进制值(可含BCD码)转换成十进制
Function hextobcd(ByVal str As String) As Byte
Dim length As Integer '字符串长度
Dim X As String '字符串中的单个字符
Dim i As Integer
length = Len(str)
For i = 0 To length - 1
X = Mid(str, length - i, 1)
Select Case X
Case "a", "A"
hextobcd = hextobcd + 10 * (16 ^ i)
Case "b", "B"
hextobcd = hextobcd + 11 * (16 ^ i)
Case "c", "C"
hextobcd = hextobcd + 12 * (16 ^ i)
Case "d", "D"
hextobcd = hextobcd + 13 * (16 ^ i)
Case "e", "E"
hextobcd = hextobcd + 14 * (16 ^ i)
Case "f", "F"
hextobcd = hextobcd + 15 * (16 ^ i)
Case "0" To "9"
hextobcd = hextobcd + Val(X) * 16 ^ i
Case Else
MsgBox("非十六进制数", vbCritical, "信息提示")
hextobcd = 0
End Select
Next i
End Function

'10进制转2进制(自定义)
Public Function DEC_to_BIN(ByVal Dec As Long) As String
DEC_to_BIN = ""


Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function
【调用】
Text2进制.Text = DEC_to_BIN(Text10进制.Text)

【调用】
Text2进制.Text = HEX_to_BIN(Text16进制.Text)

【函数】
'16进制转2进制(自定义)
Public Function HEX_to_BIN(ByVal Hex As String) As String
Dim i As Long
Dim B As String
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, i, 1)
Case "0" : B = B & "0000"
Case "1" : B = B & "0001"
Case "2" : B = B & "0010"
Case "3" : B = B & "0011"
Case "4" : B = B & "0100"
Case "5" : B = B & "0101"
Case "6" : B = B & "0110"
Case "7" : B = B & "0111"
Case "8" : B = B & "1000"
Case "9" : B = B & "1001"
Case "A" : B = B & "1010"
Case "B" : B = B & "1011"
Case "C" : B = B & "1100"
Case "D" : B = B & "1101"
Case "E" : B = B & "1110"
Case "F" : B = B & "1111"
End Select
Next i
While Left(B, 1) = "0"
B = Right(B, Len(B) - 1)
End While
HEX_to_BIN = B
End Function

【调用】
'8-->10
Dim tempL As Long
tempL = Val("&O" & Text15.Text)
'10-->2
Text12.Text = DEC_to_BIN(tempL)
【函数】
'10进制转2进制(自定义)
Public Function DEC_to_BIN(ByVal Dec As Long) As String
DEC_to_BIN = ""
Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function

3.Hex(十进制)
【功能】返回整型十六进制
【返回类型】String型
【举例】
Dim a As Integer
a= 100 '默认为十进制
Dim s As String
s = Hex(a) '返回64(十六进制)

【自定义】10进制转16进制(自定义)
Public Function DEC_to_HEX(ByVal Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
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
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
End Function
【调用】
Text19.Text = BIN_to_HEX(Text20.Text)
【函数】
'(四)2进制转16进制(自定义)
Public Function BIN_to_HEX(ByVal Bin As String) As String
Dim i As Long
Dim H As String
If Len(Bin) Mod 4 <> 0 Then '将二进制数据按四位分组,从右侧起左侧不足的补0
Bin = String(4 - Len(Bin) Mod 4, "0") & Bin
End

If

For i = 1 To Len(Bin) Step 4
Select Case Mid(Bin, i, 4)
Case "0000" : H = H & "0"
Case "0001" : H = H & "1"
Case "0010" : H = H & "2"
Case "0011" : H = H & "3"
Case "0100" : H = H & "4"
Case "0101" : H = H & "5"
Case "0110" : H = H & "6"
Case "0111" : H = H & "7"
Case "1000" : H = H & "8"
Case "1001" : H = H & "9"
Case "1010" : H = H & "A"
Case "1011" : H = H & "B"
Case "1100" : H = H & "C"
Case "1101" : H = H & "D"
Case "1110" : H = H & "E"
Case "1111" : H = H & "F"
End Select
Next i
While Left(H, 1) = "0" '去掉左侧的0
H = Right(H, Len(H) - 1)
End While
BIN_to_HEX = H
End Function
【调用】
'8-->10
Dim tempL As Long
tempL = Val("&O" & Text15.Text)
'10-->16
Text14.Text = s = Hex(tempL)

相关主题
文本预览
相关文档 最新文档