web-dev-qa-db-fra.com

Comment convertir un seul caractère en sa valeur ascii hexadécimale en python

Je suis intéressé à prendre un seul personnage,

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

sortie:

63

Quelle est la manière la plus simple de procéder? Des éléments de bibliothèque de chaînes prédéfinis?

39
IamPolaris

Il existe plusieurs façons de procéder:

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

Pour utiliser le codage hex dans Python 3, utilisez

>>> codecs.encode(b"c", "hex")
b'63'
71
Sven Marnach

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 ASCII vers et depuis hexadécimal. Dans votre cas, la ligne que vous souhaitez utiliser est str(binascii.hexlify(c),'ascii').

2
James Peters