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