java

Decimal a binario en Java

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.

El algoritmo para convertir decimal a binario en 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.

Convertir decimal a 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.

Método 2: usar toBinaryString

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.

Ejemplos para convertir decimal a binario

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:

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.