Cómo convertir un entero en una cadena hexadecimal en Python

En este post, veremos cómo convertir un entero en una cadena hexadecimal en Python.

Función hex()

La forma pitónica de convertir un entero en una cadena hexadecimal es utilizando la función incorporada hex(). Devuelve la cadena hexadecimal en minúsculas que lleva como prefijo 0x.

1
2
3
5
6
7
8

if __name__ == ‘__main__’:
i = 4095
h = hex(i)
print(h) # ‘0xfff’

Para obtener una cadena hexadecimal en mayúsculas o para deshacerse del prefijo, utilice cualquiera de las soluciones que se comentan a continuación.

función format()

Otra opción es utilizar la función incorporada format() que puede convertir un entero en una cadena hexadecimal utilizando la especificación de formato x. Si se utiliza #x, la cadena hexadecimal lleva el prefijo 0x. Si utiliza X o #X, puede obtener una cadena hexadecimal en mayúsculas.

1
2
3
5
6
7

if __name__ == ‘__main__’:
i = 4095
h = (format(i, ‘#x’), format(i, ‘#X’), format(i, ‘x’), format(i, ‘X’))
print(h) # (‘0xfff’, ‘0XFFF’, ‘fff’, ‘FFF’)

f-strings

A partir de Python 3.6, puedes utilizar f-strings. Esto puede hacerse anteponiendo a la cadena literal f o F. El literal de la cadena debe estar encerrado entre llaves {} y debe contener el número entero seguido de la especificación de formato x separado por dos puntos :.

Para prefijar la cadena hexadecimal por 0x, utilice #x y para obtener una cadena hexadecimal en mayúsculas, utilice X o #X. Así es como quedaría el código

1
2
3
5
6
7

if __name__ == ‘__main__’:
i = 4095
h = (f'{i:#x}’, f'{i:#X}’, f'{i:x}’, f'{i:X}’)
print(h) # (‘0xfff’, ‘0XFFF’, ‘fff’, ‘FFF’)

Deja una respuesta

Tu dirección de correo electrónico no será publicada.