top
<返回首页 <退出
欢迎您来到51-ARM学习论坛,您还没有[注册]或[登陆]
用户名:  
密  码:  
验证码:  
共有1299位会员 新进来宾:xle
今日发帖:27篇 在线人数:965人
最高发帖:140篇 主题总数:589篇
消息:热烈祝贺侯工单片机工作室官方网站正式开通!论坛版块诚征精英斑竹...凡51-ARM论坛斑竹,均有机参加侯工单片机工作室组织的各种技术交流,培训!!!
 论坛帮助  
51-ARM论坛>>单片机入门
 
  标题:十进制,八进制,十六进制,二进制相互转换大全
cocolive 
副师长
等级: 分版主
文章:78
积分:1148
     楼主

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

  用途:将十进制转化为二进制
输入: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
    Loop
End Function

用途:将二进制转化为十进制
输入:Bin(二进制数)
输入数据类型:String
输出:BIN_to_DEC(十进制数)
输出数据类型:Long
输入的最大数为1111111111111111111111111111111(31个1),输出最大数为2147483647
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

用途:将十六进制转化为二进制
输入: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 = B
End 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 = H
End Function

用途:将十六进制转化为十进制
输入:Hex(十六进制数)
输入数据类型:String
输出:HEX_to_DEC(十进制数)
输出数据类型:Long
输入的最大数为7FFFFFFF,输出的最大数为2147483647
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
用途:将十进制转化为十六进制
输入:Dec(十进制数)
输入数据类型:Long
输出:DEC_to_HEX(十六进制数)
输出数据类型:String
输入的最大数为2147483647,输出最大数为7FFFFFFF
Public 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
    Loop
End Function

用途:将十进制转化为八进制
输入:Dec(十进制数)
输入数据类型:Long
输出:DEC_to_OCT(八进制数)
输出数据类型:String
输入的最大数为2147483647,输出最大数为17777777777
Public 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
    Loop
End Function

用途:将八进制转化为十进制
输入:Oct(八进制数)
输入数据类型:String
输出:OCT_to_DEC(十进制数)
输出数据类型:Long
输入的最大数为17777777777,输出的最大数为2147483647
Public 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 = B
End 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 = H
End 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 = B
End 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 Function


VB自带函数:
十进制转八进制:Oct(num)
十六进制转八进制:oct(&H & num)
十进制转十六进制:hex(num)
八进制转十六进制:hex(&O & num)

十六进制转换为十进制
    Dim str As String                    
    str = Text2.Text
    Text10.Text = CLng(&H & str)


from 【编程爱好者论坛】
 

 
 
 2009-5-15 17:45:48  
cocolive 
副师长
等级: 分版主
文章:78
积分:1148
     第1楼
 
 
 2009-05-15 17:45:55  
wrqasni20 
士兵
等级: 普通会员
文章:0
积分:86
     第2楼
 
 
 2010-12-06 17:26:38  
首页 上一页 下一页 末页 页次1/1页 共 2 条回复 第
快速回复:
 
bottom
 
联系电话:0755-26766021 邮箱:51-ARM@163.com QQ群:43996737
项目定制承接手机:13798532857(侯工)
部分内容转载于网络,如有涉及版权问题,请通知本站删除。
粤ICP备09217420号 版权所有  @  2008-2012  侯工单片机工作室