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

如题所述

第1个回答  2022-11-15
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

代码和解释初学者谢谢大家了!

解析:

Private Sub Command1_Click()

Print tenTOo(1000)

End Sub

Private Sub Command2_Click()

Print oTOten("***********")

End Sub

Function tenTOo(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

tenTOo = S

End Function

Function oTOten(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

oTOten = n

End Function
相似回答
大家正在搜