2014-10-21 3 views
0

Когда вы нажимаете кнопку button1, следует принимать десятичное число из textBox1 и отображать двоичный номер в текстовом поле. Продолжайте получать ошибки и ошибки в точке преобразования num в Int32.Десятичное преобразование в двоичное преобразование в C#

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

Какая ошибка в точности? На какой линии? Каково значение 'textBox1.Text' и какова ваша' CurrentCulture'? –

+0

«Продолжайте получать ошибки и ошибки при преобразовании num в Int32». Где именно вы делаете это преобразование? – Leo

+1

Помимо всего прочего, это не будет компилироваться, потому что 'rem' определенно не назначен. –

ответ

1

Попробуйте это ...

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

    } 
1

Вы можете просто использовать класс 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

Edit: Похожий вопрос был дан ответ здесь Decimal to binary conversion in C#

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

} 

"в то время как (число> 1)" просто изменить line (num> 0), он даст полный ответ. например, , если вы запустите этот цикл «while (num> 1)», и вы дадите любое входное значение 8 для преобразования его в двоичный файл, ответ должен быть 1000, но эта программа не дает вам выход из этой программы на 000 рисунок не будет отображаться, потому что цикл завершает его сам , но , если вы запустите этот цикл «while (num> 0)», результат вашего вывода завершен и исправлен результат 8 будет отображаться 1000 теперь программа завершена для двоичного преобразования все другой код прав, просто внесите изменения в петлю

Смежные вопросы