十进制换二进制

来源:百度知道 编辑:UC知道 时间:2024/05/22 08:01:40
lzh741206写的
Dim m As Long, p As Long
m = Val(Text1.Text)
Do While m > 0
p = m Mod 2
s = p & s
m = m / 2
Loop
Print s
1.s怎么不用定义?默认数据类型?
2.s = p & s 这条语句到底是怎么把输出顺序变为我想要的顺序,而且是要的都一个数字不落下(正确顺序为10010001)
按我理解最前面一个1应该是商啊而非余数怎么也输出了?
3.我是这样理解的:
按语句的进行应该只是输出最后一次循环的值啊而且是0
我这样的理解为什么是错误的?

1.s应该定义成string,如果不定义也没问题,因为后面的连接运算用的是&,而不是+。如果用+,就必须定义为string。
2.s = p & s表示把每次产生的p放到s的前面。他提供的是正确的数制转换算法,叫除2取余法。
3.最后输出的是s,s在循环结束后就已经是二进制了,所有直接就输出。