VB编程之二进制转十进制代码!

Private Sub Command1_Click()
Dim n%, s$, x%, s1$, sum%, z%, n1%
Dim model As Boolean
s = CStr(Text1.Text) '将text1.text的值变化为字符型并赋值给s
n = Len(s) '计算出s的长度,并赋值给n
For x = 1 To n '设定x的取值从1到n
If Right(s, x) = 1 Then '如果s右边的第x个值为1
model = True '则设定model的值为true
ElseIf Right(s, x) = 0 Then '如果s右边的第x个值为0
model = False '则设定model的值为false
End If
Select Case model '选择模式
Case True
sum = sum + 2 ^ (x - 1)
Case False
sum = 0
End Select
Next x
Text2 = sum
End Sub

跪求,小弟新学VB,不道为什么,死都得不到我想要的结果!纠结中!

你要先清楚下什么是2进制,2进制就是一拉串 1111111111111 或者 1010100010101010101. 等,
然后2进制从右边向左边数 第一位 * 1 第二位 * 2, 第三位 *4 ,第四位* 8 再就是 * 16 ,32,*64 等, 然后把所有位的结果相加就是他表示的十进制数值。如果你能看懂我说的, 那么自己就可以写代码实践了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-29
Private Sub Command1_Click()
Dim n%, s$, x%, s1$, sum%, z%, n1%
Dim model As Boolean
sum=0‘初始化
s = CStr(Text1.Text) '将text1.text的值变化为字符型并赋值给s
n = Len(s) '计算出s的长度,并赋值给n
For x = 1 To n '设定x的取值从1到n
sum = sum + Right(s, x)*2 ^ (x - 1)
Next x
Text2.text = sum
End Sub
没有上机验过,应该是正确的,你可以试试
第2个回答  2010-10-27
text2= sum 这啥意思?你是想将 SUM的值

赋给 Text2.text 文本吧!
第3个回答  2010-11-05
Private Sub Command1_Click()
Dim i, s, sum
For i = 1 To Len(Text1)
s = Mid(Text1, i, 1)
If s <> "0" And s <> "1" Then Text2 = "非二进制!": Exit Sub
sum = sum * 2 + Val(s)
Next i
Text2 = sum
End Sub
相似回答