Convert Binary String to Int in Java

  1. Convert a Binary String to Int in Java Using Integer.parseInt()
  2. Convert a Binary String to Int in Java Using Math.pow()

Binary is made up of two numbers, 0 and 1, and these numbers are used to write different types of instructions for machines. But it is tough for humans to read these binary codes. This is why there are various techniques to convert the binary into a human-readable format.

In this tutorial, we will go through the two methods that we can use to convert a binary string to an int. Our goal is to take the binary and parse it to output an int that represents that binary number.

Convert a Binary String to Int in Java Using Integer.parseInt()

The first method is Integer.parseInt() that parses the given string into an int. When we pass a string and a radix or the base value to Integer.parseInt(), it returns an int value that is calculated according to the radix number.

In the example, binaryString has a binary value that needs to be converted into an int. Integer.parseInt(binaryString, 2) does the job for us. The first argument is the string, and the second argument is 2 because a binary is a base-2 number system.

If binaryString contains a non-binary value, then a NumberFormatException will be thrown and show the error message.

public class BinaryStringToInt {
    public static void main(String[] args) {
      
        try {
            String binaryString = "10010";
            int foo = Integer.parseInt(binaryString, 2);

            System.out.println(foo);
        } catch (NumberFormatException e) {
            System.out.println("Error: The binary string is not valid");
        }
      
    }
}

Output:

18

Convert a Binary String to Int in Java Using Math.pow()

In this method, we will check every character of binaryString as we know that a string in Java is a sequence of characters. We will need to loop through every character until the length of the string.

The next step is to check the occurrence of 1s in binaryString as only the 1s are added when we convert a binary to a decimal. If there is a 1, it will first decrease the length of binaryString with 1 and with the iteration’s value. So, in the case of 101000, the first character is a one, which means that int len will hold the value 5 because binaryString.length() is 6 and the iteration variable i holds 0, so it means that 6 - 1 - 0 will be 5.

Now, as we get 5, and it is passed to Math.pow(base, len) as the second argument, while the first argument will be the base. It will apply base-2 to the numbers and then add all the numbers giving us the result in int.

public class Main {

    public static void main(String[] args) {

        String binaryString = "101000";
        double convertedDouble = 0;

        for (int i = 0; i < binaryString.length(); i++) {

            if (binaryString.charAt(i) == '1') {
                int len = binaryString.length() - 1 - i;
                convertedDouble += Math.pow(2, len);
            }
        }

        int convertedInt = (int) convertedDouble;
        System.out.println(convertedInt);
    }
}

Output:

40

Related Article - Java String

  • Convert String to Date in Java
  • Replace Character in String in Java
  • Related Article - Java Int

  • Convert Char to Int in Java
  • Sort a String in Java