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:
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.pySaída:
valorLinha 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.pySaí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.pySaída:
2730Linha 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"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