Conversão de Inteiro para Binário em Java

JavaBeginner
Pratique Agora

Introdução

Neste laboratório, aprenderemos como converter um inteiro para binário em Java. Existem vários métodos para realizar esta conversão, e abordaremos os métodos mais comumente usados.

Usando o método toBinaryString()

O método toBinaryString() é a maneira mais fácil de converter um inteiro em uma string binária. Este método é um método da classe Integer que retorna uma String após converter o int para binário.

public static String toBinaryString(int val)

Aqui, val é o valor que queremos converter para o sistema de numeração binária. Este método retornará o valor binário em formato de string.

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

Saída: Value in binary system is: 10110111

Usando o Método da Divisão Longa

Este método é completamente matemático. Declaramos um array de inteiros com tamanho 32, considerando a representação binária de 32 bits. A cada vez, dividimos um número por 2 e armazenamos o resto dentro do array de inteiros. No final, para obter o resultado, percorremos o array de forma inversa.

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]);
        }
    }
}

Saída: Value in binary system is: 10110111

Usando Manipulação de Bits

Usando o operador de deslocamento para a direita (right shift operator), podemos dividir qualquer valor por dois, e como estamos trabalhando em nível de bit, é uma operação de baixo custo; e o restante é o mesmo mencionado no exemplo acima. Por fim, estamos imprimindo o valor usando a inversão do valor que é armazenado em um objeto StringBuilder para formatá-lo corretamente em forma binária.

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());
    }
}

Saída: Value in binary system is: 10110111

Usando o Método Integer.toString()

Existe outra forma interessante na classe java.lang.Integer, usando o método Integer.toString(), que aceita o primeiro argumento como um número e o segundo como uma radix (aqui, radix é a base do sistema numérico), que pode ser 2 para Binário, 8 para Octal, 16 para Hexadecimal; em nosso caso, definiremos a radix como 2 para números binários.

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

Saída: Value in binary system is: 10110111

Resumo

Neste laboratório, aprendemos como converter um inteiro para um sistema de números binários em Java usando quatro métodos diferentes. O primeiro método usa o método embutido toBinaryString(), o segundo usa um método de divisão longa, o terceiro usa manipulação de bits (bit manipulation), e o quarto usa o método Integer.toString().

Cada método tem suas próprias vantagens e desvantagens, e você pode usar aquele que melhor se adapta às suas necessidades.