En este post de programación en Python te mostraré un conversor de bases numéricas. Es decir, un convertidor de números que puede convertir entre binario, octal, decimal y hexadecimal en todas las combinaciones posibles.
Dicho con otras palabras, con este convertidor de números en Python podremos convertir de binario a decimal, binario a octal, octal a hexadecimal y todas las combinaciones que se te ocurran.
También he incluido un archivo de pruebas unitarias para probar que los métodos funcionan, además de un ejemplo de uso de este conversor.
Este programa va a reunir todas las conversiones que veníamos viendo anteriormente, y simplemente va a usarlas para convertir entre cualquier base, tomando atajos. Las conversiones son: de binario a decimal, y viceversa. De octal a decimal y de base 10 a base 8. También de hexadecimal a decimal y del proceso contrario.
Por ejemplo, para convertir de octal a hexadecimal no vamos a hacer la conversión directa, sino que primero vamos a convertir de octal a decimal, y de decimal a hexadecimal. Es decir, la base 10 o decimal será la base común.
De este modo nos ahorramos programar varias funciones, pero ofrecemos la conversión entre cualquier base.
Todas las conversiones de números las tenemos en un archivo que vamos a importar en el archivo principal:
En caso de que no entiendas el algoritmo de alguna función, dirígete al post que he dejado citado anteriormente para cada una de ellas.
Como te habrás dado cuenta, la complejidad de este conversor no está en las funciones de conversión, pues esas ya están programadas. Lo que falta programar es la pieza que le va a solicitar al usuario desde cuál base convierte, cuál número convierte y a qué base lo quiere convertir.
Vamos paso por paso, primero veamos la función que solicita los 3 datos mencionados anteriormente y los devuelve como una tupla en caso de que sean válidos:
Básicamente solicita al usuario la base desde la que se convierte (binario, octal, decimal o hexadecimal), el número que convierte (mismo que debe estar en la base solicitada en el primer paso) y la base a la que quiere convertir.
Fíjate en que la función va a devolver None
en caso de que el usuario no elija una base válida.
Ahora veamos la función que va a convertir el número a decimal, pues recuerda que todos los números serán convertidos a decimal, y desde decimal, a otras bases. Esto con el fin de ahorrarnos funciones. Entonces la función queda así:
Finalmente veamos la función que hace la conversión de acuerdo a la base:
Esta función va a devolver la conversión a la base numérica que el usuario haya elegido.
Así que el programa principal queda de la siguiente manera:
Recuerda que necesitas el archivo de conversiones que ya vimos anteriormente. En mi caso lo he probado con los siguientes tests unitarios:
Además, lo he probado manualmente desde la consola (y también ejecutado los tests):
Funciona perfectamente. En este caso ejemplifiqué las conversiones con datos solicitados por teclado, aunque bien podrías ponerlo en una API, agregar una interfaz gráfica con tkinter o Qt, etcétera.
Si quieres puedes probarlo en este enlace en donde además he colocado los 3 archivos. También te invito a seguir leyendo más sobre Python en mi blog.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.