你可利用HEX函数将10进制数转为16进制字符形式,然后用以下方法可将16进制转为二进制形式显示,16进制数转为二进制需通过编程解决,以下给出VB的代码。 
Option Explicit 
Dim bl As String * 1 
Dim ccl(7) As String 
Dim ccll(7) As String 
Dim bl_dm As String 
Dim zt_dm1 As String 
Dim i As Integer 
Dim j As Integer 
Dim bll As String Private Sub Command1_Click() 
bll = "737F" 
Call hex_bin 
End Sub Public Function hex_bin() 
For i = 1 To 4 
ccl(i) = Mid(bll, i, 1) 
Next i 
For j = 1 To 4 
bl = ccl(j) 
If bl = "F" Then 
bl_dm = "1111" 
ElseIf bl = "E" Then 
bl_dm = "1110" 
ElseIf bl = "D" Then 
bl_dm = "1101" 
ElseIf bl = "C" Then 
bl_dm = "1100" 
ElseIf bl = "B" Then 
bl_dm = "1011" 
ElseIf bl = "A" Then 
bl_dm = "1010" 
ElseIf bl = "9" Then 
bl_dm = "1001" 
ElseIf bl = "8" Then 
bl_dm = "1000" 
ElseIf bl = "7" Then 
bl_dm = "0111" 
ElseIf bl = "6" Then 
bl_dm = "0110" 
ElseIf bl = "5" Then 
bl_dm = "0101" 
ElseIf bl = "4" Then 
bl_dm = "0100" 
ElseIf bl = "3" Then 
bl_dm = "0011" 
ElseIf bl = "2" Then 
bl_dm = "0010" 
ElseIf bl = "1" Then 
bl_dm = "0001" 
ElseIf bl = "0" Then 
bl_dm = "0000" 
Else: 
bl_dm = "" 
End If 
ccll(j) = bl_dm 
Next j 
zt_dm1 = ccll(1) + ccll(2) + ccll(3) + ccll(4) 
Text1 = zt_dm1 
End Function

解决方案 »

  1.   

    不是明白你的意思,是不是要下面这个:Public Function Cbinary(ByVal LDecimal As Long) As String
        Do
            Cbinary = LDecimal Mod 2 & Cbinary
            LDecimal = LDecimal \ 2
        Loop While LDecimal
    End FunctionPublic Function CDecimal(ByVal SBinary As String) As Long
        Dim i As Long
        For i = 1 To Len(SBinary)
            CDecimal = CDecimal * 2 + Val(Mid(SBinary, i, 1))
        Next i
    End FunctionPrivate Sub Command1_Click()
        Debug.Print Cbinary(10); CDecimal("1010")
    End Sub??
      

  2.   

    Function Dec2Bin(val As Long) As String
        Dim cBit(30) As String
        Dim lTmp As Long
        Dim i As Integer
        
        Dec2Bin = vbNullString
        lTmp = val
        i = 0
        Do
            val = val \ 2
            If (lTmp - 2 * val) = 1 Then
                cBit(i) = "1"
            Else
                cBit(i) = "0"
            End If
            lTmp = val
            i = i + 1
            If val = 0 Then Exit Do
        Loop
        
        For i = 30 To 0 Step -1
            Dec2Bin = Dec2Bin & cBit(i)
        Next i
    End Function测试程序:
    Private Sub Command1_Click()
        debug.print  Dec2Bin(1254245)
    End Sub
      

  3.   

    Function Bin2Dec(strVal As String) As Long
        Dim i As Integer    For i = 1 To Len(strVal)
            Bin2Dec = Bin2Dec + Val(Mid(strVal, i, 1)) * (2 ^ (Len(strVal) - i))
        Next iEnd Function
      

  4.   

    看大家这么热闹,我也来贴个
    我的函数比较短,你看看:
    Private Function Dec(ByVal Value As String) As Long
    '   二进制转十进制
    Dim lngSum As Long
    Dim i As Integer
        lngSum = 0
        For i = 1 To Len(Value)
            lngSum = lngSum + Int(Mid(Value, i, 1)) * Powers(Len(Value) - i)
        Next i
        Dec = lngSum
    End FunctionPrivate Function Bin(ByVal Value As Long) As String
    '   十进制转二进制
    Dim intMod As Integer
    Dim lngSum As Long
    Dim strSum As String
        lngSum = Value
        strSum = ""
        Do Until lngSum <= 0
            intMod = lngSum Mod 2
            strSum = strSum & Trim(Str(intMod))
            lngSum = (lngSum - intMod) / 2
        Loop
        Bin = StrReverse(strSum)
    End FunctionPrivate Function Powers(ByVal Value As Integer) As Long
    '   幂函数,2的Value次方
        Select Case Value
        Case 0
            Powers = 1
        Case 1
            Powers = 2
        Case Else
            Powers = Powers(Value - 1) * 2
        End Select
    End Function