我写的,也可以转换二进制小数:
Function bindec(x As String) As Double ' 2 TO 10
Const BINS = "01."
For i = 1 To Len(x)
If InStr(1, BINS, Mid(x, i, 1)) <> 0 Then GoTo OK
MsgBox "NOT A BINARY FORMAT!": Exit Function
Next
OK:
Dim a
a = Split(x, ".")
y = 0
For i = 1 To Len(a(0))
y = y + Mid(a(0), i, 1) * 2 ^ (Len(a(0)) - i)
Next
For i = 1 To Len(a(1))
y = y + Mid(a(1), i, 1) / 2 ^ i
Next
bindec = y
End Function
Private Sub Command1_Click()
MsgBox bindec("101101.11001")
End Sub
我認為這需要寫代碼,下面是我剛寫的一段,你試試吧!希望對你有幫助。
Private Sub Command1_Click()
Dim lenght As Integer
Dim i As Integer
Dim num As Integer
lenght = Len(Text1.Text)
For i = 1 To lenght
num = num + Mid(Text1.Text, i, 1) * 2 ^ (lenght - i)
Next i
Label1.Caption = num
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As String
Dim lResult As Long
j = Trim(Text1.Text)
For i = 1 To (Len(j) - 1)
lResult = (lResult + CInt(Left(j, 1))) * 2
j = Mid(j, 2)
Next i
lResult = lResult + j
MsgBox lResult
End Sub