How can I convert a binary string to decimal using Java?

  • Context: Comp Sci 
  • Thread starter Thread starter major_maths
  • Start date Start date
  • Tags Tags
    Issues Java
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 2K views
major_maths
Messages
30
Reaction score
0
I'm trying to make a program that prompts a user to enter a binary number and then converts the string into integers by using Integer.parseInt. Right now though, I'm having trouble with tokenizing the string. My code works when I use the predefined variable temp but not when I enter the same thing into the String variable inputLine.

Code:
import java.util.*;

public class testBitConverter
{
	public static void main(String[] args)
	{
		Scanner keyboard = new Scanner(System.in);
		System.out.println("Please enter a string.");
		String inputLine = keyboard.next(); 
		
                String temp = "1 1 0 0 0 1 1 1";

		StringTokenizer tester = new StringTokenizer(inputLine);
		String first = tester.nextToken();
		String second = tester.nextToken();
		String third = tester.nextToken();
		String fourth = tester.nextToken();
		String fifth = tester.nextToken();
		String sixth = tester.nextToken();
		String seventh = tester.nextToken();
		String eighth = tester.nextToken();
		
		System.out.println("This is the output: ");
		System.out.println("first token: "+first);
		System.out.println("second token: "+second);
		System.out.println("third token: "+third);
		System.out.println("fourth token: "+fourth);
		System.out.println("fifth token: "+fifth);
		System.out.println("sixth token: "+sixth);
		System.out.println("seventh token: "+seventh);
		System.out.println("eighth token: "+eighth);
	}
}
 
Physics news on Phys.org
This doesn't seem like the right approach to me. Your input should be a string that consists of at most 32 0's and 1's. After the string is entered, your program should loop through the string from the back to the front, determining whether the current entry in the string is a '0' or a '1'.

For example, if the entered string is "110101" the resulting decimal number will be the sum of
1 * 20 = 1
0 * 21 = 0
1 * 22 = 4
0 * 23 = 0
1 * 24 = 16
1 * 25 = 32

These add up to 53.