Converter string binária em Int em Java

  1. Converter uma string binária para Int em Java utilizando Integer.parseInt()
  2. Converter uma String binária para Int em Java utilizando Math.pow()

O binário é composto por dois números, 0 e 1, e estes números são utilizados para escrever diferentes tipos de instruções para máquinas. Mas é difícil para os humanos ler estes códigos binários. É por isso que existem várias técnicas para converter o binário num formato legível por humanos.

Neste tutorial, passaremos pelos dois métodos que podemos utilizar para converter uma sequência binária para um int. O nosso objectivo é pegar no binário e analisá-lo para produzir um int que represente esse número binário.

Converter uma string binária para Int em Java utilizando Integer.parseInt()

O primeiro método é Integer.parseInt() que analisa a string dada em um int. Quando passamos uma string e um radix ou o valor base para Integer.parseInt(), ele retorna um valor int que é calculado de acordo com o número do radix.

No exemplo, binaryString tem um valor binário que precisa de ser convertido num int. O integer.parseInt(binaryString, 2) faz o trabalho por nós. O primeiro argumento é a string, e o segundo argumento é 2 porque um binário é um sistema de números de base 2.

Se binaryString contém um valor não binário, então um NumberFormatException será atirado e mostrará a mensagem de erro.

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");
        }
      
    }
}

Resultado:

18

Converter uma String binária para Int em Java utilizando Math.pow()

Neste método, iremos verificar todos os caracteres de binaryString, pois sabemos que uma string em Java é uma sequência de caracteres. Teremos de percorrer cada carácter até ao comprimento da string.

O passo seguinte é verificar a ocorrência de 1s em binaryString, uma vez que apenas os 1s são adicionados quando convertemos um binário para uma casa decimal. Se houver um 1, primeiro diminuirá o comprimento do “binaryString” com 1 e com o valor da iteração. Assim, no caso de 101000, o primeiro carácter é um, o que significa que int len manterá o valor 5 porque binaryString.length() é 6 e a variável de iteração i mantém 0, pelo que significa que 6 - 1 - 0 será 5.

Agora, à medida que obtemos 5, e é passado para Math.pow(base, len) como segundo argumento, enquanto que o primeiro argumento será a base. Aplicará a base 2 aos números e depois adicionará todos os números que nos dão o resultado em 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);
    }
}

Resultado:

40

Artigo relacionado - Java String

  • String para Boolean em Java
  • Como verificar se uma string contém um caractere em Java
  • Artigo relacionado - Java Int

  • String para Boolean em Java
  • Como verificar se uma string contém uma string em Java