Private Sub Command1_Click()
Dim n As Integer, num As Long
Dim ch As String, Bin() As String, r As Integer, i As Integer
num = Val(Text1)
n = 0
Do
r = num Mod 2
n = n + 1
ReDim Bin(n)
Loop Until r = 0
For i = UBound(Bin) To 1 Step -1
ch = ch & Bin(i)
Next i
Text2 = ch
End Sub
哪里出了错?跪求高手帮忙修改!
这样:
Private Sub Command1_Click()
Dim n As Integer, num As Long
Dim ch As String, Bin() As String, r As Integer, i As Integer
num = Val(Text1.Text)
n = 0
r = num
Do
n = n + 1
ReDim Preserve Bin(n)
Bin(n) = r Mod 2
r = r \ 2
Loop Until r < 1
For i = UBound(Bin) To 1 Step -1
ch = ch & Bin(i)
Next i
Text2.Text = ch
End Sub
redim数组变量没有给其赋值。
注意事项
一个十进制转二进制的函数:
Public Function D2B(D As Integer) As String
D2B = ""
Do While D > 0
D2B = D Mod 2 & D2B
D = D \ 2
Loop
End Function
Private Sub Form_Load()
Me.Caption = D2B(8)
End Sub
另外的办法:
Function dToTwo(n As Integer) As String
Dim S As String
S = ""
Do While n <> 0
a = n Mod 2
n = n \ 2
S = Chr(48 + a) & S
Loop
dToTwo= S
End Function
额,我不要其他方法。。。就想知道自己的方法哪里出错了
追答Private Sub Command1_Click()
Dim n As Integer, num As Long
Dim ch As String, Bin() As String, r As Integer, i As Integer
num = Val(Text1.Text)
n = 0
r = num
Do
n = n + 1
ReDim Preserve Bin(n)
Bin(n) = r Mod 2
r = r \ 2
Loop Until r < 1
For i = UBound(Bin) To 1 Step -1
ch = ch & Bin(i)
Next i
Text2.Text = ch
End Sub