Euridice01 Euridice01 - 3 months ago 18
Java Question

Converting Decimal to Binary Java

I am trying to convert decimal to binary numbers from the user's input using Java.

I'm getting errors.

package reversedBinary;
import java.util.Scanner;

public class ReversedBinary {


public static void main(String[] args) {
int number;

Scanner in = new Scanner(System.in);

System.out.println("Enter a positive integer");
number=in.nextInt();

if (number <0)
System.out.println("Error: Not a positive integer");
else {

System.out.print("Convert to binary is:");
System.out.print(binaryform(number));
}

}

private static Object binaryform(int number) {
int remainder;

if (number <=1) {
System.out.print(number);

}

remainder= number %2;
binaryform(number >>1);
System.out.print(remainder);

{
return null;
} } }


How do I convert Decimal to Binary in Java?

Answer

Your binaryForm method is getting caught in an infinite recursion, you need to return if number <= 1:

import java.util.Scanner;

public class ReversedBinary {

    public static void main(String[] args) {
        int number; 

        Scanner in = new Scanner(System.in);

        System.out.println("Enter a positive integer");
        number = in.nextInt();

        if (number < 0) {
            System.out.println("Error: Not a positive integer");
        } else { 

            System.out.print("Convert to binary is:");
            //System.out.print(binaryform(number));
            printBinaryform(number);
        }
    }

    private static void printBinaryform(int number) {
        int remainder;

        if (number <= 1) {
            System.out.print(number);
            return;   // KICK OUT OF THE RECURSION
        }

        remainder = number %2; 
        printBinaryform(number >> 1);
        System.out.print(remainder);
    }
}
Comments