String para hexadecimal em python

String para hexadecimal em python

Hexadecimal tem uma base de 16 e podemos representar uma string em formato hexadecimal usando o prefixo 0x.

Podemos converter a string em hexadecimal usando os seguintes métodos:

  1. Usando o método Hex (n)
  2. Usando o método Encode ()
  3. Usando o método literal_eval ()

Método 1: Usando o Hex ()

Podemos converter a string em hexadecimal usando o método Hex (). O método hex () aceita o parâmetro em forma inteira e, para isso primeiro, temos que converter a string em um número inteiro e depois passar esse valor para o método hex () como mostrado abaixo:

Exemplo: string_to_hex.py

# string_to_hex.py
str = "245FC"
# Passe o STR para o int () para convertê -lo em base16 int
base16int = int (str, 16)
# Imprima a string convertida para base16 hexadecimal int valor
Print ("Valor", Base16INT)
print ("valor", tipo (base16int))
hex_value = hex (base16int)
Imprimir (hex_value)
# chcking o tipo de valor
Imprimir (tipo (hex_value))

Saída:

valor
0x245fc

Linha 3: criamos uma string para a demonstração.

Linha 6: Passamos essa string para o método int () com a base 16. Agora, este método int () converterá a string para o valor inteiro hexadecimal.

Linha 9: Imprimos o valor que recebemos depois de converter a string em hexadecimal inteiro.

Linha 10: Também imprimimos o tipo de valor para confirmar que a string está agora na forma de um número inteiro.

Linha 12: Sabemos que o método Hex (N) embutido aceita o valor inteiro, convertendo o número inteiro na sequência hexadecimal. É por isso que precisamos converter a string em um número inteiro para passar para o método hex (). Passamos esse valor base16INT para o método hex () e recebemos o hex_value, string hexadecimal.

Linha 13: Imprimos esse valor hexadecimal convertido.

Linha 16: Imprimos o tipo de valor hexadecimal convertido, que mostra na saída que é um tipo de string.

Então, agora convertemos a string em um valor hexadecimal.

Método 2: converta a string em hexadecimal usando o codificador ()

Também podemos converter a string normal em uma string hexadecimal que não tem caráter hexadecimal. Para isso, temos que converter a string em byte usando o método code () e, em seguida, podemos converter a string em hexadecimal, como mostrado abaixo:

# string_to_hex_utf8.py
# converta a string para os bytes
str = 'linuxhint'.Encode ('UTF-8')
# Imprima a string convertida em bytes
Imprimir (STR)
# Converta os bytes de string na string hexadecimal
hex_str = str.hexadecimal ()
# Imprima o tipo de valor hexadecimal convertido
Imprimir (Tipo (hex_str))

Saída:

Linha 4 a 7: Criamos uma string que não tem nenhum personagem hexadecimal. E depois converta essas strings em bytes usando o método code (). E então, imprimimos esses bytes, que podemos ver na linha de saída número 1.

Linha 10 a 13: Chamamos o método Hex () usando o operador DOT e agora os bytes são convertidos no valor da string hexadecimal que precisamos. Para confirmar o tipo de string de resultado, apenas imprimimos o número 13 da linha e a saída mostra que ela está em um tipo hexadecimal de string.

Método 3. Usando ast.Método literal_eval ()

Também podemos converter a string em um número inteiro usando o método da biblioteca AST literal_eval. Este método também converte a string em um número inteiro para usar o método hex () para converter a string em string hexadecimal. Mas este método aceita apenas caracteres de prefixo 0x.

# string_to_hex_utf8.py
de AST import literal_eval
str = "0XAAA"
# converta a string para o número inteiro
convert_str = literal_eval (str)
# Imprima o valor e o tipo do convert_str
Imprimir (convert_str)
Print ("Type", Type (convert_str))
# passe o método convert_str para o hex ()
hex_value = hex (convert_str)
Imprimir (hex_value)
# chcking o tipo de valor
Imprimir (tipo (hex_value))

Saída:

2730
tipo
0XAAA

Linha 2 a 10: Nós importamos o método literal_eval () da biblioteca AST. Então criamos uma string com o prefixo 0x. Em seguida, passamos essa string para o método literal_eval () e convertemos para o inteiro. Para confirmar que a saída está em forma inteira, nós a imprimimos na linha número 9. Também imprimimos o tipo de saída, o que mostra que é um número inteiro.

Linha 13 a 17: Sabemos o método Hex (N) embutido que aceita o valor inteiro, convertendo o número inteiro na sequência hexadecimal. É por isso que precisamos converter a string em um número inteiro para passar para o método hex (). Passamos esse valor convert_str (número inteiro) para o método Hex () e obtivemos o Hex_Value, String hexadecimal. Imprimos esse valor hexadecimal convertido. Imprimos o tipo de valor hexadecimal convertido também, que mostra que é um tipo de string hexadecimal.

Exceção de erro (TypeError):

Às vezes, conseguiremos erros enquanto conversam a string em uma string hexadecimal. A razão por trás disso é o método hex () aceita apenas o valor inteiro como um parâmetro.

string_hex = "0xff"
hex_output = hex (string_hex)
Imprimir (hex_output)

Saída:

1
TypeError: o objeto 'str' não pode ser interpretado como um número inteiro

Conclusão:

Então, vimos métodos diferentes para converter a string em uma string hexadecimal minúscula. O método hex () é muito popular por causa de seu uso fácil. Mas, às vezes, queremos converter a string sem usar o prefixo 0x; portanto, nesse caso, podemos usar o método bytes code (), como já vimos no artigo.

O código deste artigo está disponível no link do Github abaixo:

https: // github.com/shekharpandey89/string-to-hex-conversion