在word vba中如何实现二进制和十进制之间的互相转换!谢谢!

解决方案 »

  1.   

        Public Function D_To_B(ByVal Dec As Long) As String
            Do
                D_To_B = Dec Mod 2 & D_To_B
                Dec = Dec \ 2
            Loop While Dec
        End Function    Public Function B_To_D(ByVal Bin As String) As Integer
            Dim i As Long
            For i = 1 To Len(Bin)
                B_To_D = B_To_D * 2 + Val(Mid(Bin, i, 1))
            Next i
        End Function
      

  2.   

    http://www.newasp.net/tech/net/11956.htmlPublic Function D_To_B(ByVal Dec As Long) As String
    Do
    D_To_B = Dec Mod 2 & D_To_B
    Dec = Dec \ 2
    Loop While Dec
    End FunctionPublic Function B_To_D(ByVal Bin As String) As Integer
    Dim i As Long
    For i = 1 To Len(Bin)
    B_To_D = B_To_D * 2 + Val(Mid(Bin, i, 1))
    Next i
    End FunctionPublic Function H_To_B(ByVal Hex As String) As String
    Dim i As Long
    Dim B As StringHex = 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
    H_To_B = B
    End FunctionPublic Function B_To_H(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 IfFor 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
    B_To_H = H
    End Function