正文

十进制,八进制,十六进制,二进制相互转换大全2006-04-03 19:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/11903.html

分享到:

' 用途:将十进制转化为二进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_BIN(二进制数)' 输出数据类型:String' 输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)Public Function DEC_to_BIN(Dec As Long) As String    DEC_to_BIN = ""    Do While Dec > 0        DEC_to_BIN = Dec Mod 2 & DEC_to_BIN        Dec = Dec \ 2    LoopEnd Function' 用途:将二进制转化为十进制' 输入:Bin(二进制数)' 输入数据类型:String' 输出:BIN_to_DEC(十进制数)' 输出数据类型:Long' 输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647Public 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 iEnd Function' 用途:将十六进制转化为二进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_BIN(二进制数)' 输出数据类型:String' 输入的最大数为2147483647个字符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)    Wend    HEX_to_BIN = BEnd Function' 用途:将二进制转化为十六进制' 输入:Bin(二进制数)' 输入数据类型:String' 输出:BIN_to_HEX(十六进制数)' 输出数据类型:String' 输入的最大数为2147483647个字符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        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"        H = Right(H, Len(H) - 1)    Wend    BIN_to_HEX = HEnd Function' 用途:将十六进制转化为十进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_DEC(十进制数)' 输出数据类型:Long' 输入的最大数为7FFFFFFF,输出的最大数为2147483647Public 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 = BEnd Function' 用途:将十进制转化为十六进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_HEX(十六进制数)' 输出数据类型:String' 输入的最大数为2147483647,输出最大数为7FFFFFFFPublic Function DEC_to_HEX(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    LoopEnd Function' 用途:将十进制转化为八进制' 输入:Dec(十进制数)' 输入数据类型:Long' 输出:DEC_to_OCT(八进制数)' 输出数据类型:String' 输入的最大数为2147483647,输出最大数为17777777777Public Function DEC_to_OCT(Dec As Long) As String    DEC_to_OCT = ""    Do While Dec > 0        DEC_to_OCT = Dec Mod 8 & DEC_to_OCT        Dec = Dec \ 8    LoopEnd Function' 用途:将八进制转化为十进制' 输入:Oct(八进制数)' 输入数据类型:String' 输出:OCT_to_DEC(十进制数)' 输出数据类型:Long' 输入的最大数为17777777777,输出的最大数为2147483647Public Function OCT_to_DEC(ByVal Oct As String) As Long    Dim i As Long    Dim B As Long        For i = 1 To Len(Oct)        Select Case Mid(Oct, Len(Oct) - i + 1, 1)            Case "0": B = B + 8 ^ (i - 1) * 0            Case "1": B = B + 8 ^ (i - 1) * 1            Case "2": B = B + 8 ^ (i - 1) * 2            Case "3": B = B + 8 ^ (i - 1) * 3            Case "4": B = B + 8 ^ (i - 1) * 4            Case "5": B = B + 8 ^ (i - 1) * 5            Case "6": B = B + 8 ^ (i - 1) * 6            Case "7": B = B + 8 ^ (i - 1) * 7        End Select    Next i    OCT_to_DEC = BEnd Function' 用途:将二进制转化为八进制' 输入:Bin(二进制数)' 输入数据类型:String' 输出:BIN_to_OCT(八进制数)' 输出数据类型:String' 输入的最大数为2147483647个字符Public Function BIN_to_OCT(ByVal Bin As String) As String    Dim i As Long    Dim H As String    If Len(Bin) Mod 3 <> 0 Then        Bin = String(3 - Len(Bin) Mod 3, "0") & Bin    End If        For i = 1 To Len(Bin) Step 3        Select Case Mid(Bin, i, 3)            Case "000": H = H & "0"            Case "001": H = H & "1"            Case "010": H = H & "2"            Case "011": H = H & "3"            Case "100": H = H & "4"            Case "101": H = H & "5"            Case "110": H = H & "6"            Case "111": H = H & "7"        End Select    Next i    While Left(H, 1) = "0"        H = Right(H, Len(H) - 1)    Wend    BIN_to_OCT = HEnd Function' 用途:将八进制转化为二进制' 输入:Oct(八进制数)' 输入数据类型:String' 输出:OCT_to_BIN(二进制数)' 输出数据类型:String' 输入的最大数为2147483647个字符Public Function OCT_to_BIN(ByVal Oct As String) As String    Dim i As Long    Dim B As String        For i = 1 To Len(Oct)        Select Case Mid(Oct, i, 1)            Case "0": B = B & "000"            Case "1": B = B & "001"            Case "2": B = B & "010"            Case "3": B = B & "011"            Case "4": B = B & "100"            Case "5": B = B & "101"            Case "6": B = B & "110"            Case "7": B = B & "111"        End Select    Next i    While Left(B, 1) = "0"        B = Right(B, Len(B) - 1)    Wend    OCT_to_BIN = BEnd Function' 用途:将八进制转化为十六进制' 输入:Oct(八进制数)' 输入数据类型:String' 输出:OCT_to_HEX(十六进制数)' 输出数据类型:String' 输入的最大数为2147483647个字符Public Function OCT_to_HEX(ByVal Oct As String) As String    Dim Bin As String    Bin = OCT_to_BIN(Oct)    OCT_to_HEX = BIN_to_HEX(Bin)End Function' 用途:将十六进制转化为八进制' 输入:Hex(十六进制数)' 输入数据类型:String' 输出:HEX_to_OCT(八进制数)' 输出数据类型:String' 输入的最大数为2147483647个字符Public Function HEX_to_OCT(ByVal Hex As String) As String    Dim Bin As String    Hex = UCase(Hex)    Bin = HEX_to_BIN(Hex)    HEX_to_OCT = BIN_to_OCT(Bin)End FunctionVB自带函数:十进制转八进制:Oct(num)十六进制转八进制:oct("&H" & num)十进制转十六进制:hex(num)八进制转十六进制:hex("&O" & num) 十六进制转换为十进制    Dim str As String                         str = Text2.Text    Text10.Text = CLng("&H" & str)

阅读(23022) | 评论(7)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册