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

AI Thread 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
Views
2K
Replies
7
Views
3K
Replies
3
Views
1K
Replies
2
Views
5K
Replies
7
Views
2K
Replies
5
Views
3K
Replies
16
Views
2K
Replies
8
Views
1K
Back
Top