Converter string binária em Int em Java
- 
          
            Converter uma string binária para Int em Java utilizando Integer.parseInt()
- 
          
            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
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java
