Преобразование числа в двоичное, не может исправить ошибку 0/0

Здравствуйте, у меня есть программа, которая успешно преобразует десятичную в двоичную. Однако в конце код делит 0 на 0, что приводит к сообщению об ошибке в конце. Вот код

import java.lang.*; 
import java.util.*;     
public class BinaryConverter {
public static void main (String[] argv) {

    Scanner input = new Scanner (System.in);


    int number = 0;
    int factorOfTwo = 0;

    do {
        System.out.println("Enter the number to convert (0-255): ");
        number = input.nextInt();
    }  while (number< 0 || number > 255);

    System.out.println("The number " + number + " converted to binary is : ");

    for (factorOfTwo = 1; factorOfTwo <= 128; factorOfTwo*=2) {
        if (number / factorOfTwo >= 1){
            System.out.print("1");
            number -= factorOfTwo;
        }
        else System.out.print ("0");
    }

} // end of main
}// end of class

2 ответа

Решение

В размещенном коде деления на ноль нет. Есть только одно подразделение и factorOfTwo никогда не может быть 0 в этом цикле.

Если вы по-прежнему получаете ошибку деления на ноль, убедитесь, что вы работаете с этим кодом:

  1. Убедитесь, что скомпилированный файл класса является более новым исходным файлом.

  2. Убедитесь, что скомпилированный файл класса находится первым в пути к классам.

Также обратите внимание на комментарий Аки. Вы создаете двоичное число в обратном направлении.

Какое сообщение об ошибке вы получаете? потому что ваш factorofTwo никогда не может быть 0,for (factorOfTwo = 1; factorOfTwo <= 128; factorOfTwo*=2).. здесь это только увеличивается

Другие вопросы по тегам