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

本文关键字:二进制 转换 十进制 | 更新日期: 2023-09-27 18:27:12

按下中的按钮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();
    }

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

试试这个。。。

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();
    }

您可以简单地使用Convert类

string bin = Convert.ToString(num, 2);

请参阅此方法Convert.ToString方法(Int32,Int32)

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

http://msdn.microsoft.com/en-us/library/14kwkz77%28v=vs.110%29.aspx

编辑:类似的问题已经在这里得到了回答c#中的十进制到二进制转换

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现在程序已经完成二进制转换,所有其他代码都是正确的,只需在循环中进行更改