Java – Convertir Binario a Decimal (algoritmo)

En este artículo explicaré 2 maneras de convertir un número binario a un número decimal en Java; es decir, convertir de base 2 (binario) a base 10 (decimal).

El primer método es recorriendo la cadena y haciendo las operaciones que se harían manualmente; o sea que lleva más trabajo.

La segunda manera indica cómo usar un método que ya viene en la API de Java listo para convertir binario a decimal sin esfuerzo. Veremos ambas.

Binario a decimal: método fácil

Como lo dije, ya existe un método en Java que hace esto. Como queremos una gran precisión usamos el tipo de dato long para convertir números binarios aunque sean grandes.

La clase Long tiene un método estático llamado parseLong que recibe una cadena y la base de dicha cadena. Basta con llamarlo y pasarle el número binario con la base, que es 2.

Aquí la sintaxis:

long numeroDecimal = Long.parseLong(numeroBinarioComoCadena, 2);

Al final veremos algunos ejemplos.

Algoritmo para convertir binario a decimal

Explicación del algoritmo

El segundo método es un algoritmo más desarrollado. Recorremos el número binario dígito por dígito, obteniendo un 1 o un 0.

Multiplicamos ese dígito por un multiplicador (qué redundancia, lo sé) que será el resultado de elevar el 2 a una potencia dada por el índice en el que vayamos.

Por ejemplo, el número final de la derecha tiene un multiplicador de 1, el penúltimo tiene uno de 2, el antepenúltimo uno de 4 y así sucesivamente.

Si el dígito es 0, al multiplicar seguirá siendo 0; pero si es 1, entonces será el valor que va en esa posición. Al final todo eso se suma en una variable y el resultado es el número decimal.

Código fuente

El código queda así:

De igual manera se utiliza un tipo de dato long para soportar números grandes.

Probar conversión binaria a decimal

Ahora veamos a los dos métodos expuestos en acción. He creado un código en donde se prueba a ambos y se imprime el valor que regresa cada uno. Aquí está:

Si quieres probar el código en línea haz click aquí. También puedes descargarlo y probarlo en un IDE, te recomiendo NetBeans.

Lee más sobre Java en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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