HOWTO · Python
String para Hex em Python
Este tutorial demonstra como converter string em hexadecimal em Python
Nesta página
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.