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.

Dejar un comentario

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