把下面的代码复制到模块中,然后在程序中调用函数即可,使用时注意数值的转换范围。Option Explicit'十进制转二进制
Public Function TenturnTwo(ByVal varNum As Long)
    Dim returnString As String, ModNum As Integer
    Do While varNum > 0
        ModNum = varNum Mod 2
        varNum = varNum \ 2
        returnString = Trim(Str(ModNum)) + returnString
    Loop
    TenturnTwo = returnString
End Function'二进制转十进制
Public Function TwoturnTen(ByVal varString As String)
    Dim SLen As Long, I As Long, returnNum As Long
    SLen = Len(varString)
    For I = 0 To SLen - 1
        returnNum = returnNum + Val(Mid(varString, I + 1, 1)) * (2 ^ (SLen - I - 1))
    Next
    TwoturnTen = returnNum
End Function

解决方案 »

  1.   

    Function Dec2Bin(InputData As Double) As String
    ''
    ''  Converts Decimal to Binary
    ''  This uses the Quotient Remainder method
    ''
    Dim Quot As Double
    Dim Remainder As Double
    Dim BinOut As String
    Dim I As Integer
    Dim NewVal As Double
    Dim TempString As String
    Dim TempVal As Double
    Dim BinTemp As String
    Dim BinTemp1 As String
    Dim PosDot As Integer
    Dim Temp2 As String
    ''  Check to see if there is a decimal point or not
    ''
    If InStr(1, CStr(InputData), ".") Then
      MsgBox "Only Whole Numbers can be converted", vbCritical
      GoTo eds
    End IfBinOut = ""
    NewVal = InputData
    DoAgain:''  Start the Calculations off
    NewVal = (NewVal / 2)
    ''  If we have a remainder
    If InStr(1, CStr(NewVal), ".") Then
      BinOut = BinOut + "1"
      
      '' Get rid of the Remainder
      NewVal = Format(NewVal, "#0")
      NewVal = (NewVal - 1)
      
       If NewVal < 1 Then
         GoTo DoneIt
       End If
    Else
      BinOut = BinOut + "0"
       If NewVal < 1 Then
         GoTo DoneIt
       End If
    End If
    GoTo DoAgainDoneIt:
    MsgBox BinOut
    BinTemp = ""''  Reverse the Result
    For I = Len(BinOut) To 1 Step -1
     BinTemp1 = Mid(BinOut, I, 1)
     BinTemp = BinTemp + BinTemp1
    Next IBinOut = BinTemp'' Output the Result
    Dec2Bin = BinOut
    eds:
    End Function=================
    Function Bin2Dec(InputData As String) As Double
    ''
    ''  This converts Binary to Decimal
    ''
    Dim DecOut As Double
    Dim I As Integer
    Dim LenBin As Double
    Dim JOne As StringLenBin = Len(InputData)''
    ''  Make sure that it is a Binary Number
    ''
    For I = 1 To LenBin
     JOne = Mid(InputData, I, 1)
       If JOne <> "0" And JOne <> "1" Then
         MsgBox "NOT A BINARY NUMBER", vbCritical
         Exit Function
       End If
    Next I
    DecOut = 0
    For I = Len(InputData) To 1 Step -1
      If Mid(InputData, I, 1) = "1" Then
        DecOut = DecOut + 2 ^ (Len(InputData) - I)
      End If
    Next I
            
      Bin2Dec = DecOut
            
    End Function
    这个函数的范围大一些
      

  2.   

    进制转化相关贴子:
    http://www.csdn.net/expert/topic/702/702004.xml?temp=.5143549
    http://www.csdn.net/expert/topic/670/670623.xml?temp=.1453516
    http://www.csdn.net/expert/topic/669/669329.xml?temp=.7846186
    http://www.csdn.net/expert/topic/668/668288.xml?temp=.5115167
    http://www.csdn.net/expert/topic/661/661706.xml?temp=.4214899
    http://www.csdn.net/expert/topic/658/658476.xml?temp=.3378717
    http://www.csdn.net/expert/topic/657/657002.xml?temp=.3998529
    http://www.csdn.net/expert/topic/635/635224.xml?temp=.7371942
    http://www.csdn.net/expert/topic/631/631897.xml?temp=6.342715E-02