Conversión de Entero a Binario en Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo convertir un entero a binario en Java. Hay varios métodos para realizar esta conversión, y cubriremos los métodos más comúnmente utilizados.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/while_loop("While Loop") java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("StringBuffer/StringBuilder") java/DataStructuresGroup -.-> java/arrays("Arrays") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("Wrapper Classes") java/SystemandDataProcessingGroup -.-> java/math_methods("Math Methods") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/operators -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/while_loop -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/output -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/stringbuffer_stringbuilder -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/arrays -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/wrapper_classes -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/math_methods -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} java/string_methods -.-> lab-117748{{"Conversión de Entero a Binario en Java"}} end

Usando el método toBinaryString()

El método toBinaryString() es la forma más fácil de convertir un entero en una cadena binaria. Este método es un método de la clase Integer que devuelve una cadena después de convertir el int a binario.

public static String toBinaryString(int val)

Aquí, val es el valor al que queremos convertir al sistema numérico binario. Este método devolverá el valor binario en formato de cadena.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        System.out.println("Value in binary system is: " + Integer.toBinaryString(val));
    }
}

Salida: Value in binary system is: 10110111

Usando el método de división larga

Este método es completamente matemático. Declaramos una matriz de enteros de tamaño 32 considerando la representación binaria de 32 bits. Cada vez que dividimos un número entre 2 y almacenamos el residuo dentro de la matriz de enteros. Al final, para obtener el resultado, lo recorremos en sentido inverso.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        int num[] = new int[32];
        int pos = 0;
        while (val > 0) {
            num[pos++] = val % 2;
            val = val / 2;
        }
        System.out.print("Value in binary system is: ");
        for (int i = pos - 1; i >= 0; i--) {
            System.out.print(num[i]);
        }
    }
}

Salida: Value in binary system is: 10110111

Usando manipulación de bits

Utilizando el operador de desplazamiento a la derecha, podemos dividir cualquier valor a la mitad, y dado que estamos trabajando a nivel de bits, es una operación de muy bajo costo; y el resto de las cosas es igual que la mencionada en el ejemplo anterior. Al final, estamos imprimiendo el valor utilizando el valor invertido que se almacena en un objeto StringBuilder para que quede en forma binaria correctamente.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        StringBuilder binary = new StringBuilder(32);
        while (val > 0) {
            binary.append(val % 2);
            val >>= 1;
        }
        binary.reverse().toString();
        System.out.print("Value in binary system is: " + binary.reverse().toString());
    }
}

Salida: Value in binary system is: 10110111

Usando el método Integer.toString()

Hay otra forma interesante en la clase java.lang.Integer mediante el uso del método Integer.toString(), que acepta el primer argumento como un número y el segundo como una base (aquí la base es la base del sistema numérico), que puede ser 2 para binario, 8 para octal, 16 para hexadecimal; en nuestro caso, estableceremos la base en 2 para el número binario.

public class IntegerToBinaryConverter {
    public static void main(String[] args) {
        int val = 183;
        System.out.print("Value in binary system is: " + Integer.toString(val, 2));
    }
}

Salida: Value in binary system is: 10110111

Resumen

En este laboratorio, aprendimos cómo convertir un entero al sistema numérico binario en Java utilizando cuatro métodos diferentes. El primer método es utilizar el método integrado toBinaryString(), el segundo es utilizar el método de división larga, el tercero es utilizar la manipulación de bits y el cuarto es utilizar el método Integer.toString().

Cada método tiene sus propias ventajas y desventajas, y puedes utilizar el que se ajuste mejor a tus necesidades.