Convierte una cadena binaria a Int en Java

Rupam Yadav 12 octubre 2023
  1. Convertir una cadena binaria a Int en Java usando Integer.parseInt()
  2. Convierte una cadena binaria a Int en Java usando Math.pow()
Convierte una cadena binaria a Int en Java

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 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

Artículo relacionado - Java String

Artículo relacionado - Java Int