Python: convertir decimal a hexadecimal

En este artículo de programación en Python te voy a enseñar cómo convertir un número decimal en base 10 a un número hexadecimal en base 16. Es el último post sobre Python y conversión de números que he venido haciendo.

En resumen te mostraré el código fuente de cómo pasar de decimal a hexadecimal en Python usando código propio, y no funciones que ya vienen dentro del lenguaje.

Algoritmo para pasar de decimal a hexadecimal

Lo que debemos hacer son divisiones mientras el número decimal sea mayor que cero. Primero obtenemos el residuo de dividir al decimal entre 16.

Una vez que tenemos el residuo (que será un valor entre 0 y 15) obtenemos su verdadero valor, pues recuerda que en hexadecimal existen las letras desde la A hasta la F, así que si el número es mayor a 9 se debe convertir a letra.

Luego, ese dígito hexadecimal es agregado al inicio de la cadena que guardará el número hexadecimal completo. Y finalmente asignamos a decimal el valor de dividirlo a sí mismo entre 16 (de este modo el ciclo se romperá en algún momento).

Por cierto, es importante convertir la división de decimal entre 16 a entero, ya que necesitamos solo valores enteros porque el residuo ya lo calculamos anteriormente.

Código de la función

Necesitamos dos funciones. Una de ellas es para obtener el verdadero valor hexadecimal, y la otra es la que realmente convierte el número decimal a hexadecimal en Python. Como sea, el código fuente de ambas se ve así:

La función de la línea 8 devuelve el verdadero carácter hexadecimal como lo expliqué anteriormente. En cambio, la de la línea 25 convierte de decimal a hexadecimal. El ciclo lo puedes ver en la línea 27.

El cálculo del residuo está en la línea 28, y la división para hacer menor a decimal está en la línea 31. En algún momento se detendrá el ciclo y se va a devolver la cadena hexadecimal.

Poniendo todo junto

El modo de uso de las funciones anteriormente expuestas queda a tu criterio, sin embargo te voy a mostrar un ejemplo simple de uso.

En este caso vamos a solicitar al usuario que ingrese un número decimal y lo vamos a convertir a hexadecimal usando esta función. El código completo queda así:

Al ejecutarlo puedo observar que los resultados son correctos:

Convertir decimal a hexadecimal en Python

Recuerda que anteriormente hice un conversor de números en JavaScript en donde puedes probar todos estos resultados.

He colocado este ejercicio en línea para que puedas ejecutarlo. También te invito a que leas más sobre Python 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