Private Sub Command1_Click()
Print tenTOtwo(1000)
End Sub
Private Sub Command2_Click()
Print twoTOten("***********")
End Sub
Function tenTOtwo(n As Integer) As String
Dim S As String
S = ""
Do While n <> 0 '从1至n,按照“逢2进1”法则计算,一直到转换完毕
a = n Mod 2 '可以理解为二进制字符串的最后一位的数字,0或1
n = n \ 2 '这是整除,只取结果的整数部分,小数部分不取。是求“进1”之后所剩的尚待进行转换的整数部分
S = Chr(48 + a) & S '这里说不清楚了,你意会吧,靠你自己了。Chr(48)是数字字符0,如果a=1则为Chr(48+1),即数字符1
Loop
tenTOtwo = S
End Function
Function twoTOten(S As String) As Integer
Dim n As Integer
n = Val(Mid(S, 1, 1)) '取出第一位的1以备进入循环第一轮时用
For i = 2 To Len(S) '从二进制字符串的第二位开始(第一位已取出)至最后一位,分别取出1个数字进行计算
n = n * 2 + Val(Mid(S, i, 1)) '按照“逢2进1”的法则倒转过来计算
Next i
twoTOten = n
End Function
如何运用这些代码编一个2进制与10进制转换的程序!
我首先建立Text1 和 Text2
然后建立 Command1 和 Command2
当我在Text1输入10进制数 点击Command1时在Text2显示2进制数
在Text2输入2进制数 点击Command2时在Text1显示10进制数
參考答案:Private Sub Command1_Click()
Text2.Text = tenTOtwo(Val(Text1.Text))
End Sub
Private Sub Command2_Click()
Text1.Text = twoTOten(Text2.Text)
End Sub
其它的不变