String para Hex em Python

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.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
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