Anteriormente expuse cómo convertir binario a decimal en Java, ahora veremos el proceso inverso, el cual es convertir un número decimal (base 10) a uno binario (base 2).
De igual manera voy a exponer 2 métodos: uno que lleva más desarrollo del algoritmo y otro que ya ofrece la API de Java.
La forma desarrollada implica ir dividiendo el número decimal entre 2, hasta llegar a 0. Se toma el residuo de la división (o sea, lo que sobra al dividirlo, lo cual puede ser 1 o 0) y se va concatenando en una cadena.
Concatenando tal vez no es el término correcto, más bien, el dígito del residuo se inserta al inicio de la cadena que será el número binario.
Veamos el método que acabo de explicar en el algoritmo. Usamos un StringBuilder pero no te confundas ni agobies, solamente es para que nos ayude a insertar el dígito binario al inicio de la cadena.
public static String convertirDecimalABinarioManual(long decimal) {
if (decimal <= 0) {
return "0";
}
StringBuilder binario = new StringBuilder();
while (decimal > 0) {
short residuo = (short) (decimal % 2);
decimal = decimal / 2;
// Insertar el dígito al inicio de la cadena
binario.insert(0, String.valueOf(residuo));
}
return binario.toString();
}
Al final regresamos el StringBuilder
pero convertido a cadena. Como lo dije, solamente es para facilitarnos las cosas para trabajar con la cadena.
Como lo dije, ya existe un método optimizado y puesto en la API de Java para convertir un número decimal a su representación binaria.
El método del que hablo se llama toBinaryString
y está dentro de la clase Long
; usamos Long
para manejar números que sean grandes.
La sintaxis es:
String binario = Long.toBinaryString(numeroDecimal);
Abajo veremos ejemplos de uso.
Ahora veamos cómo se usan los métodos que explicamos. La salida debería ser la misma para ambos. Veamos:
class Main {
public static void main(String[] args) {
int[] decimales = { 0, 2, 5, 50, 120, 1023, 51, 52, 60, 100, 53, 54, 55, 56, 57, 16, 17 };
for (int decimal : decimales) {
System.out.println("Convirtiendo decimal a binario el número " + decimal);
System.out.println("Manual: " + convertirDecimalABinarioManual(decimal));
System.out.println("Usando funciones: " + convertirDecimalABinario(decimal));
}
}
public static String convertirDecimalABinario(long decimal) {
return Long.toBinaryString(decimal);
}
public static String convertirDecimalABinarioManual(long decimal) {
if (decimal <= 0) {
return "0";
}
StringBuilder binario = new StringBuilder();
while (decimal > 0) {
short residuo = (short) (decimal % 2);
decimal = decimal / 2;
// Insertar el dígito al inicio de la cadena
binario.insert(0, String.valueOf(residuo));
}
return binario.toString();
}
}
Eres libre de descargar el código, en caso de que lo hagas, mira este tutorial para que instales NetBeans; un IDE poderoso que ayudará a la hora de programar en Java.
Como siempre, te invito a leer más sobre:
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.