Write a Java program to convert binary numbers to decimal numbers.

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 18K views
Mehwish-S
Messages
2
Reaction score
0
Use a loop to read (charAt()) each digit (0/1 char) in the input string, scanning from right to left;

Use the loop to build the required powers of 2;

Use a conditional statement to deal with 0 and 1 separately;

Debug using simple input, e.g. 1, 10, 101, and print intermediate values in the loop.



Use your program to find the decimal value of the following binary number:

1001010101011010111001011101010101010101




I have got as far as this:

import java.lang.*;
import java.io.*;

public class BinaryToDecimal{
public static void main(String[] args) throws IOException{
BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter the Binary value: ");
String str = bf.readLine();
long num = Long.parseLong(str);
long rem;
while(num > 0){
rem = num % 10;
num = num / 10;
if(rem != 0 && rem != 1){
System.out.println("This is not a binary number.");
System.out.println("Please try once again.");
System.exit(0);
}
}
int i= Integer.parseInt(str,2);
System.out.println("Decimal:="+ i);
}
}

But when I compile and run it only says "Enter the Binary value:"
Help! :/
 
Physics news on Phys.org
When you post code, put a
Code:
 tag at the top and a
tag at the bottom. This preserves your indentation, if any, and makes your code easier to read. I have done this below.

Since you didn't do much indentation, I have done so.
Mehwish-S said:
Use a loop to read (charAt()) each digit (0/1 char) in the input string, scanning from right to left;

Use the loop to build the required powers of 2;

Use a conditional statement to deal with 0 and 1 separately;

Debug using simple input, e.g. 1, 10, 101, and print intermediate values in the loop.
Use your program to find the decimal value of the following binary number:

1001010101011010111001011101010101010101

I have got as far as this:
Code:
import java.lang.*;
import java.io.*;

public class BinaryToDecimal{
  public static void main(String[] args) throws IOException{
    BufferedReader bf= new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter the Binary value: ");
    String str = bf.readLine();
    long num = Long.parseLong(str);
    long rem;
    while(num > 0){
      rem = num % 10;
      num = num / 10;
      if(rem != 0 && rem != 1){
        System.out.println("This is not a binary number.");
        System.out.println("Please try once again.");
        System.exit(0);
      }
   }
   int i= Integer.parseInt(str,2);
   System.out.println("Decimal:="+ i);
   }
}
But when I compile and run it only says "Enter the Binary value:"
Help! :/

After your program printed "Enter the Binary value:" did you enter a binary value?
 
Last edited:
Thank you so much
Im new to this so I don't know how to use it much :S
No, I couldn't enter the Binary Number because I am using netbeans
How is it possible to enter the number? Do i just type it in next to "Enter Binary Number" ?