Convierte una cadena binaria a Int en Java
-
Convertir una cadena binaria a Int en Java usando
Integer.parseInt()
-
Convierte una cadena binaria a Int en Java usando
Math.pow()
El binario está compuesto por dos números, 0 y 1, y estos números se utilizan para escribir diferentes tipos de instrucciones para las máquinas. Pero es difícil para los humanos leer estos códigos binarios. Por eso hay varias técnicas para convertir el binario en un formato legible para los humanos.
En este tutorial, repasaremos los dos métodos que podemos usar para convertir una cadena binaria en un int
. Nuestro objetivo es tomar el binario y analizarlo para obtener un int
que represente ese número binario.
Convertir una cadena binaria a Int en Java usando Integer.parseInt()
El primer método es Integer.parseInt()
que analiza la cadena dada en una int
. Cuando pasamos una cadena y un radix o el valor base a Integer.parseInt()
, devuelve un valor int
que se calcula según el número de radix.
En el ejemplo, binaryString
tiene un valor binario que necesita ser convertido en una int
. Integer.parseInt(binaryString, 2)
hace el trabajo por nosotros. El primer argumento es la cadena, y el segundo es 2 porque un binario es un sistema de números base-2.
Si binaryString
contiene un valor no binario, entonces se lanzará una NumberFormatException
y mostrará el mensaje de error.
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
Convierte una cadena binaria a Int en Java usando Math.pow()
En este método, comprobaremos cada carácter de binaryString
ya que sabemos que una cadena en Java es una secuencia de caracteres. Necesitaremos hacer un bucle en cada carácter hasta la longitud de la cadena.
El siguiente paso es comprobar la aparición de 1s en binaryString
ya que sólo se añaden los 1s cuando convertimos un binario en un decimal. Si hay un 1, primero disminuirá la longitud de binaryString
con 1 y con el valor de la iteración. Así, en el caso de 101000
, el primer carácter es un uno, lo que significa que int len
tendrá el valor 5 porque binaryString.length()
es 6 y la variable de iteración i
tiene el valor 0, por lo que significa que 6 - 1 - 0 será 5.
Ahora, como obtenemos 5, y se pasa a Math.pow(base, len)
como segundo argumento, mientras que el primer argumento será la base. Aplicará la base 2 a los números y luego sumará todos los números dándonos el resultado en 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.
LinkedInArtículo relacionado - Java String
- Cómo eliminar la subcadena de la cadena en Java
- Cómo realizar una conversión de cadena a cadena en Java
- Cómo convertir un array de bytes en una cadena hexadecimal en Java
- Cómo convertir una cadena de Java en un byte
- Generar cadena aleatoria en Java
- El método Swap en Java