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