<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    每天進步一點點
    Welcome ,My new friends!!!
    posts - 11,comments - 1,trackbacks - 0

    十進制,八進制,十六進制,二進制相互轉換

    ' 用途:將十進制轉化為二進
    ' 輸入: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)

    文章出處:http://blog.programfan.com/article.asp?id=11903
    感謝作者的無私奉獻、、、、

    posted on 2009-03-29 10:57 moonandsun 閱讀(1462) 評論(0)  編輯  收藏 所屬分類: --vb leaning--
    主站蜘蛛池模板: 亚洲视频一区网站| 国产亚洲一区二区在线观看| 亚洲成av人片在线看片| 老司机69精品成免费视频| 国产国拍精品亚洲AV片| 久久嫩草影院免费看夜色| 久久青青草原亚洲av无码| 国产福利在线观看永久免费| 亚洲男人在线无码视频| 亚欧乱色国产精品免费视频| 精品国产亚洲一区二区在线观看| 人碰人碰人成人免费视频| 亚洲精品无码久久一线| 精品无码人妻一区二区免费蜜桃 | 国产成人无码免费网站| 亚洲精品无码不卡在线播HE| 东北美女野外bbwbbw免费| 久久亚洲精品成人| 最新黄色免费网站| 亚洲色大18成人网站WWW在线播放| 在线观着免费观看国产黄| 一级成人生活片免费看| 亚洲国产精品无码一线岛国 | 成年女人色毛片免费看| 亚洲国产高清国产拍精品| 亚洲AⅤ视频一区二区三区| 国产免费一级高清淫曰本片| 亚洲色欲色欲www在线丝| 亚洲黄色免费在线观看| 亚洲精品无码久久久久APP | 亚洲成在人线aⅴ免费毛片| 亚洲日本中文字幕天堂网| 免费播放在线日本感人片| 182tv免费视频在线观看| 亚洲视频精品在线| 免费特级黄毛片在线成人观看| fc2免费人成为视频| 久久久无码精品亚洲日韩按摩 | 在线观看免费中文视频| 亚洲AV成人无码网站| 亚洲国产一区二区三区|