Conversión de número de decimal a binario en Java

Bueno pues creo que el título lo dice todo, esta clase permite convertir un numero de decimal a binario, aunque existen funciones nativas del lenguaje que realizan esta y otras conversiones de una manera muy sencilla:

Stringa binario = Integer.toBinaryString(decimal);

Sin más rodeos acá el código hecho a mano:

public class DecimalABinario
{
private int decimalAConvertir;

public DecimalABinario(int numAConvertir)
{
decimalAConvertir = numAConvertir;
}

//Descripcion:  Convierte un numero decimal a binario
//espera:      Un numero entero
//devuelve:    un cadena, que representa el numero entero pero en formato binario
public String convertirDecABin()
{
StringBuffer binario = new StringBuffer() ;
StringBuffer binarioCorregido = new StringBuffer() ;

binario.append(decimalAConvertir % 2);

//Obtiene el numero en binario, pero al reves
for(int i=1, binTemp=decimalAConvertir ; i<=7 ; i++)
binario.append((binTemp = binTemp / 2) % 2);
//Invierte el numero binario al reves, para que se lea bien
for(int j =0;j<8; j++)
binarioCorregido.append(binario.toString().charAt((binario.length()-1)-j));

return binarioCorregido.toString();
}

public String convertirDecABin(int num)
{
decimalAConvertir = num;
return convertirDecABin();
}

public static void main (String[] args)
{
int num=50;
DecimalABinario conversion1 = new DecimalABinario(num);
System.out.println(“en decimal: “+num+” en binario: “+conversion1.convertirDecABin());
num=64;
System.out.println(“en decimal: “+num+” en binario: “+conversion1.convertirDecABin(num));
num=100;
System.out.println(“en decimal: “+num+” en binario: “+conversion1.convertirDecABin(num));
}

}

como se puede ver en el método main hacemos prueba con 3 numeros (50,64,100); los convertimos y mostramos su equivalente en binario.

ahora aca la compilación y ejecución:

conversion dec a bin

Bueno hasta pronto y espero que a alguien le sirva. Saludos y suerte.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *