67 votes

Comment convertir un seul caractère en sa valeur hexadécimale ASCII en Python ?

Je suis intéressé à prendre dans un seul personnage.

 c = 'c' # for example
hex_val_string = char_to_hex_string(c)
print hex_val_string

sortir:

 63

Quelle est la façon la plus simple de procéder? Des trucs de bibliothèque de chaînes prédéfinies ?

119voto

Sven Marnach Points 133943

Il existe plusieurs manières de procéder :

 >>> hex(ord("c"))
'0x63'
>>> format(ord("c"), "x")
'63'
>>> import codecs
>>> codecs.encode(b"c", "hex")
b'63'

Sur Python 2, vous pouvez également utiliser l'encodage hex comme ceci (ne fonctionne pas sur Python 3+) :

 >>> "c".encode("hex")
'63'

8voto

James Peters Points 117

Cela pourrait aider

 import binascii

x = b'test'
x = binascii.hexlify(x)
y = str(x,'ascii')

print(x) # Outputs b'74657374' (hex encoding of "test")
print(y) # Outputs 74657374

x_unhexed = binascii.unhexlify(x)
print(x_unhexed) # Outputs b'test'

x_ascii = str(x_unhexed,'ascii')
print(x_ascii) # Outputs test

Ce code contient des exemples de conversion de caractères ASCII vers et depuis l'hexadécimal. Dans votre situation, la ligne que vous voudriez utiliser est str(binascii.hexlify(c),'ascii') .

5voto

Sarath Avanavu Points 85

Étant donné que votre chaîne d'entrée se trouve dans la inputString , vous pouvez simplement appliquer la fonction .encode('utf-8').hex() au-dessus de cette variable pour obtenir le résultat.

 inputString = "Hello"
outputString = inputString.encode('utf-8').hex()

Le résultat sera 48656c6c6f .

3voto

Matt Points 19

Tu peux le faire:

 your_letter = input()
def ascii2hex(source):
    return hex(ord(source))
print(ascii2hex(your_number))

Pour plus d'informations, rendez-vous sur : https://www.programiz.com/python-programming/methods/built-in/hex

2voto

pour obtenir le code ASCII, utilisez ord("a"); pour convertir ascii en caractère, utilisez chr (97)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X