工控之家

 找回密码
加入工控之家

VB 十进制,八进制,十六进制,二进制相互转换大全

[复制链接]
发表于 2012-7-9 22:01:42 | 显示全部楼层 |阅读模式
用途:将十进制转化为二进制
输入:Dec(十进制数)
输入数据类型:Long
输出:DEC_to_BIN(二进制数)
输出数据类型:String
输入的最大数为2147483647,输出最大数为1111111111111111111111111111111(31个1)Public 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
    Loop
End 用途:将二进制转化为十进制
输入:Bin(二进制数)
输入数据类型:String
输出:BIN_to_DEC(十进制数)
输出数据类型:Long
输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647Public 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 用途:将十六进制转化为二进制
输入:Hex(十六进制数)
输入数据类型:String
输出:HEX_to_BIN(二进制数)
输出数据类型:String
输入的最大数为2147483647个字符 Public 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 - 1)
    Wend
    HEX_to_BIN = B
End 用途:将二进制转化为十六进制
输入:Bin(二进制数)
输入数据类型:String
输出:BIN_to_HEX(十六进制数)
输出数据类型:String
输入的最大数为2147483647个字符   Public 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 = H
End 用途:将十六进制转化为十进制
输入:Hex(十六进制数)
输入数据类型:String
输出:HEX_to_DEC(十进制数)
输出数据类型:Long
输入的最大数为7FFFFFFF,输出的最大数为2147483647Public 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 用途:将十进制转化为十六进制
输入:Dec(十进制数)
输入数据类型:Long
输出:DEC_to_HEX(十六进制数)
输出数据类型:String
输入的最大数为2147483647,输出最大数为7FFFFFFFPublic 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
    Loop
End 用途:将十进制转化为八进制
输入:Dec(十进制数)
输入数据类型:Long
输出:DEC_to_OCT(八进制数)
输出数据类型:String
输入的最大数为2147483647,输出最大数为17777777777   Public 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
    Loop
End 用途:将八进制转化为十进制
输入:Oct(八进制数)
输入数据类型:String
输出:OCT_to_DEC(十进制数)
输出数据类型:Long
输入的最大数为17777777777,输出的最大数为2147483647Public 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 = B
End 用途:将二进制转化为八进制
输入:Bin(二进制数)
输入数据类型:String
输出:BIN_to_OCT(八进制数)
输出数据类型:String
输入的最大数为2147483647个字符Public 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 = H
End 用途:将八进制转化为二进制
输入:Oct(八进制数)
输入数据类型:String
输出:OCT_to_BIN(二进制数)
输出数据类型:String
输入的最大数为2147483647个字符 Public 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 - 1)
    Wend
    OCT_to_BIN = B
End 用途:将八进制转化为十六进制
输入:Oct(八进制数)
输入数据类型:String
输出:OCT_to_HEX(十六进制数)
输出数据类型:String
输入的最大数为2147483647个字符Public 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 用途:将十六进制转化为八进制
输入:Hex(十六进制数)
输入数据类型:String
输出:HEX_to_OCT(八进制数)
输出数据类型:String
输入的最大数为2147483647个字符Public 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
VB自带函数:
十进制转八进制:Oct(num)
十六进制转八进制:oct(\"&H\" & num)
十进制转十六进制:hex(num)
八进制转十六进制:hex(\"&O\" & num)十六进制转换为十进制
    Dim str As String                     
    str = Text2.Text
    Text10.Text = CLng(\"&H\" & str)
发表于 2012-7-9 22:40:47 | 显示全部楼层
不错 啊
该把程序一块发上来
发表于 2012-7-9 23:19:52 | 显示全部楼层
不错,学习了。
发表于 2012-7-9 23:58:57 | 显示全部楼层
okokok
发表于 2012-7-10 00:38:02 | 显示全部楼层
好东西,学习。
发表于 2012-7-10 01:17:07 | 显示全部楼层
不错
发表于 2012-7-10 01:56:12 | 显示全部楼层
henhao
发表于 2012-7-10 02:35:17 | 显示全部楼层
谢谢提供,能写一个程序发上来吗?
您需要登录后才可以回帖 登录 | 加入工控之家

本版积分规则

QQ|手机版|小黑屋|Archiver|工控之家 ( 鲁ICP备12015736号-1 )

GMT+8, 2024-5-17 22:49 , Processed in 0.074992 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表