Converter string binária em Int em Java

Rupam Yadav 12 outubro 2023
  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()
Converter string binária em Int em Java

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
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java String

Artigo relacionado - Java Int