Siguiendo con los tutoriales de programación en Python y la conversión de números hoy vamos a ver cómo convertir un número hexadecimal a decimal. Es decir, convertir un número en base 16 como FF a 255 en base 10.

Para esto vamos a programar la función, y no vamos a usar métodos que el lenguaje ya incorpore. Al final tendremos un código propio que realiza la conversión de hexadecimal a decimal.

Explicación del código

Antes de pasar al verdadero código, veamos cómo funciona el algoritmo. Este programa va a trabajar de la misma manera que los otros que convierten entre bases numéricas (octal a decimal, binario a decimal) salvo por una cosa extra, que son las letras de hexadecimal.

Como sabes, hexadecimal maneja 16 caracteres que son los números del 0 al 9 pero además las letras de la A a la F, por lo que tendremos que crear una función que nos devuelva el valor numérico de cada letra (10 para A, 11 para B).

Después de eso, el algoritmo es simple. Invertimos la cadena porque la debemos recorrer de derecha a izquierda, y como los ciclos solo van de izquierda a derecha, la invertimos para que el recorrido sea de derecha a izquierda según la cadena original.

En cada iteración del ciclo vamos a elevar 16 a la posición del carácter en el que vamos, luego tomamos el dígito hexadecimal, obtenemos su valor numérico y lo multiplicamos por el resultado anteriormente obtenido.

Finalmente vamos acumulando este resultado en el valor decimal que vamos a regresar al final del ciclo. Básicamente el programa ejecuta los siguientes pasos para, por ejemplo, el número FF:

En caso de que el número sea mayor, se hacen más iteraciones. Ahora que he explicado el funcionamiento y un ejemplo de la ejecución veamos el código.

Código fuente: hexadecimal a decimal en Python

He escrito dos funciones. La primera devuelve el valor numérico a partir de un carácter hexadecimal, y la segunda es la que realmente hace la conversión. Ambas funciones quedan así:

A continuación te enseñaré el modo de uso.

Poniendo todo junto

Puedes invocar a las funciones desde cualquier lugar. Yo haré que se le solicite al usuario un número en base 16 y este programa en Python lo convierta a base 10, es decir, de hexadecimal a decimal. El código completo queda así:

Al ejecutarlo, la salida es correcta. He comprobado el resultado con mi otro conversor de bases numéricas:

Convertir hexadecimal a decimal en Python – Código

Tú también puedes ejecutarlo y probarlo en este enlace. En caso de que te guste Python, te invito a leer más posts sobre este lenguaje.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 1,347 suscriptores


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/

0 Comentarios

Deja un comentario

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

A %d blogueros les gusta esto: