vb中十进制转换成二进制

我写了一段程序代码,是把十进制转换成二进制,可是运行的时候结果出的一直是错的。麻烦高手帮我看下哪里错了,还有就是要是能教我怎么调试程序就再好不过了。现在就干着急

Private Sub Command1_Click()
Dim n As Long, p As Integer, a As Integer
a = Text1.Text
Do While a > 0
p = a Mod 2
a = a \ 2
n = p & n
Loop
Text2.Text = n

1、首先,定义两个整型变量,保存计算出的每位二进制数和二进制位数的统计。

2、定义一个实型变量,保存计算的十进制小数。

3、输入一个十进制小数,保存在变量d中。

4、do-while循环中,将十进制小数乘以2。

5、取十进制数的整数部分,保存在变量b中。

6、输出该位的二进制数,同时将十进制数的整数部分减掉。

7、运行程序,输入任意一个十进制小数,计算机就会输出相应的二进制小数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-28
嗯,你的想法是对的。学会调试程序比让别人帮你做要强得多。
就VB来说,调试程序还是比较简单方便的,常用方法有三:
1、单步执行。在没有多线程、没有定时器的情况下,这个方法几乎可以解决一切问题。
每次程序只执行一行,你可以逐行的与你设想的情况做比较,随时查看甚至修改变量的内容。
2、加断点。有时候单步执行过于枯燥乏味,比如说遇到循环。那你可以在希望程序停下的地方设置断点。设置方法很简单,在该行最左侧点击鼠标,或者在该行按F9。
3、打Log。在合适的位置插入 Debug.Print 命令,可以将希望监视的变量的值实时打出来。然后通过分析来确定问题所在。
掌握好这三个方法,几乎可以解决99%的问题。祝进步!
第2个回答  2018-04-11
12345678910111213141516171819202122

Option Explicit    Dim sBin As String    Dim sHex As StringPrivate Sub Command1_Click()    sHex = Text1    HexToBin (sHex)    Text2 = sBin    sBin = ""End Sub  Private Sub Form_Load()    Text1 = ""End Sub  Public Function HexToBin(ByVal sHex As String) As String '处理16进制转换2进制代码    Const s1 = "0000101001101111000", s2 = "0125A4936DB7FEC8"    Dim i As Integer    sHex = UCase(sHex)    For i = 1 To Len(sHex)        sBin = sBin & Mid(s1, InStr(1, s2, Mid(sHex, i, 1)), 4)    Next iEnd Function

本回答被网友采纳
第3个回答  推荐于2018-03-07
Private Sub Command1_Click()
    a% = Val(Text1.Text)
    tmp = ""
    Do
        tmp = (a Mod 2) & tmp
        If a < 2 Then Exit Do
        a = a \ 2
    Loop
    Text2.Text = tmp
End Sub

本回答被提问者和网友采纳
第4个回答  2013-05-28
Dim n As Long, p As Integer, a As Integer

改成
Dim n As String, p As Integer, a As Integer
相似回答