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

Click For Summary
The discussion focuses on writing a Java program to convert binary numbers to decimal. Key points include using a loop to read each binary digit from right to left, building powers of 2, and implementing conditional statements to validate input. The user shared their code but encountered an issue where the program only prompts for input without accepting it, particularly when using NetBeans. Clarifications were sought on how to enter the binary number in the IDE. The conversation emphasizes debugging and ensuring proper input handling in the program.
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" ?
 

Similar threads

  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 18 ·
Replies
18
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 2 ·
Replies
2
Views
5K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 16 ·
Replies
16
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K