Cadena a hexadecimal en Python

Manav Narula 10 octubre 2023
Cadena a hexadecimal en Python

Los valores hexadecimales tienen una base de 16. En Python, las cadenas hexadecimales tienen el prefijo 0x.

La función hex() se utiliza para convertir un entero decimal en su número hexadecimal respectivo. Por ejemplo,

a = 102
print(hex(a))

Producción :

0x66

También podemos convertir valores flotantes a hexadecimales usando la función hex() con la función float(). El siguiente código implementa esto.

a = 102.18
print(float.hex(a))

Producción :

0x1.98b851eb851ecp+6

No podemos convertir una cadena usando esta función. Entonces, si tenemos una situación en la que tenemos una cadena hexadecimal y queremos convertirla en el número hexadecimal, no podemos hacerlo directamente. Para tales casos, tenemos que convertir esta cadena al valor decimal requerido usando la función int() y luego convertirla al número hexadecimal usando la función hex() discutida anteriormente.

El siguiente código muestra esto.

hex_s = "0xEFA"
a = int(hex_s, 16)
hex_n = hex(a)
print(hex_n)

Producción :

0xefa

Los caracteres de la cadena no tienen ningún valor hexadecimal correspondiente. Sin embargo, si convertimos una cadena a un objeto de tipo bytes, usando la función encode(), podemos convertirla a su valor hexadecimal usando la función hex().

Por ejemplo,

s = "Sample String".encode("utf-8")
print(s.hex())

Producción :

53616d706c6520537472696e67

En el código anterior, codificamos la cadena en el tipo utf-8 y la convertimos en tipos de bytes.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python String

Artículo relacionado - Python Hex