String para Hex em Python

Manav Narula 10 outubro 2023
String para Hex em Python

Os valores hexadecimais têm uma base de 16. Em Python, as strings hexadecimais são prefixadas com 0x.

A função hex() é usada para converter um inteiro decimal em seu respectivo número hexadecimal. Por exemplo,

a = 102
print(hex(a))

Resultado:

0x66

Também podemos converter valores float em hexadecimais usando a função hex() com a função float(). O código a seguir implementa isso.

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

Resultado:

0x1.98b851eb851ecp+6

Não podemos converter uma string usando esta função. Portanto, se temos uma situação em que temos uma string hexadecimal e queremos convertê-la em um número hexadecimal, não podemos fazer isso diretamente. Para tais casos, temos que converter esta string para o valor decimal requerido usando a função int() e então convertê-lo para o número hexadecimal usando a função hex() discutida anteriormente.

O código a seguir mostra isso.

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

Resultado:

0xefa

Os caracteres na string não têm nenhum valor hexadecimal correspondente. No entanto, se convertermos uma string em um objeto do tipo bytes, usando a função encode(), podemos convertê-la em seu valor hexadecimal usando a função hex().

Por exemplo,

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

Resultado:

53616d706c6520537472696e67

No código acima, codificamos a string no tipo utf-8 e a convertemos em tipos de byte.

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

Artigo relacionado - Python String

Artigo relacionado - Python Hex