python

Convertir hexadecimal a decimal en Python

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:

See the gist on github.

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í:

See the gist on github.

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í:

See the gist on github.

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.

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.
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/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

2 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

2 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

3 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

4 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

2 semanas hace

Esta web usa cookies.