VB实现2进制与10进制转换

代码和解释初学者谢谢大家了!
2024-11-22 07:28:14
推荐回答(1个)
回答(1):

Private Sub Command1_Click()
Print tenTOtwo(1000)
End Sub

Private Sub Command2_Click()
Print twoTOten("1111101000")
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