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