web-dev-qa-db-ja.com

単一の文字を16進数のASCII値に変換するにはどうすればpython

私は単一のキャラクターを取り入れることに興味があります。

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

出力:

63

これについて最も簡単な方法は何ですか?定義済みの文字列ライブラリのものはありますか?

39
IamPolaris

これを行うにはいくつかの方法があります。

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

Python 3でhexエンコーディングを使用するには

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

これは役立つかもしれません

_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
_

このコードには、ASCII文字を16進数に変換したり、16進数から変換するための例が含まれています。状況によっては、使用する行はstr(binascii.hexlify(c),'ascii')です。

2
James Peters