C# C语言中十进制到二进制的转换#

C# C语言中十进制到二进制的转换#,c#,while-loop,binary,C#,While Loop,Binary,按中的按钮1时,应从textBox1中提取十进制数,并在textBox1中显示二进制数。在将num转换为Int32时不断获取和出错 private void button1_Click(object sender, EventArgs e) { int num; // The number input into textBox1 int quot; num = Convert.ToInt32(textBox1.Text);

按中的按钮1时,应从textBox1中提取十进制数,并在textBox1中显示二进制数。在将num转换为Int32时不断获取和出错

private void button1_Click(object sender, EventArgs e)
    {
        int num;   // The number input into textBox1
        int quot;
        num = Convert.ToInt32(textBox1.Text);

        string rem;
        while(num > 1)
        {
            quot = num / 2;
            rem += (num % 2).ToString();
            num = quot;
        }
        string bin =" ";
        for (int i = rem.Length - 1; i >= 0; i--)
        {
            bin = bin + rem[i];
        }
        textBox1.Text = bin.ToString();
    }

您可以简单地使用Convert类

string bin = Convert.ToString(num, 2);
看到这个方法了吗 Convert.ToString方法(Int32,Int32)

将32位有符号整数的值转换为指定基中的等效字符串表示形式

编辑: 这里也回答了类似的问题

试试这个

private void button1_Click(object sender, EventArgs e)
        {

               double dbVlaue = Convert.ToDouble(textBox1.Text);
                int quot;
                int num;
                num = Convert.ToInt32(dbVlaue);

                string rem = string.Empty;
                while (num > 1)
                {
                    quot = num / 2;
                    rem += (num % 2).ToString();
                    num = quot;
                }
                string bin = " ";
                for (int i = rem.Length - 1; i >= 0; i--)
                {
                    bin = bin + rem[i];
                }
                textBox1.Text = bin.ToString();

    }
“while(num>1)”只需更改此行,而(num>0)它将给出完整答案。例如 如果您运行这个循环“while(num>1)”,并且您给出任何输入值8以将其转换为二进制,那么答案必须是1000,但是这个程序不给您这个程序的输出将是000,最后一个数字将不会显示,因为循环会自行终止 但是
如果“while(num>0)”运行此循环,则输出结果已完成并更正。8的结果将显示1000。现在,程序已完成二进制转换,所有其他代码均正确。只需在循环中进行更改即可

错误到底是什么?在哪一条线上?
textBox1.Text
的值是多少?您的
CurrentCulture
是什么?“在将num转换为Int32时不断获取并出错”您在哪里进行此转换?除此之外,这不会编译,因为
rem
没有明确指定。可能您只需要像
textBox1.Text.Trim()
这样的内容,或者检查
textBox1.Text
是否为空。
private void button1_Click(object sender, EventArgs e)
{

           double dbVlaue = Convert.ToDouble(textBox1.Text);
            int quot;
            int num;
            num = Convert.ToInt32(dbVlaue);

            string rem = string.Empty;
            while (num > 1)
            {
                quot = num / 2;
                rem += (num % 2).ToString();
                num = quot;
            }
            string bin = " ";
            for (int i = rem.Length - 1; i >= 0; i--)
            {
                bin = bin + rem[i];
            }
            textBox1.Text = bin.ToString();

}