\

Pythonでは、バイト列と16進数の相互変換を行うためのいくつかの方法があります。

整数と16進数文字列の相互変換

Pythonでは、ビルトインの format 関数や hex を使うことができます。

>>> format(0xabcd, 'x') 
'abcd'
>>> hex(0xabcd) 
'0xabcd'
>>> '%02x' % 0xabcd 
'abcd'

また、str.format も使うことができます。

>>> '{:02x}'.format(0xabcd) 
'abcd'

16進数文字列を整数に変換するには int を使います。

>>> int('0xabcd', 16) 
43981
>>> int('abcd', 16) 
43981

16進数文字列とバイト列の相互変換

bytes.fromhexbytes.hex は組み込みのメソッドです。bytes.hex は Python 3.5 で追加されました。

>>> bytes.fromhex('abcd') 
b'\\xab\\xcd'
>>> b'\\xab\\xcd'.hex() 
'abcd'

binascii.unhexlifybinascii.hexlify も使うことができますが、binascii モジュールをインポートする必要があります。

>>> import binascii
>>> binascii.unhexlify('abcd') 
b'\\xab\\xcd'
>>> str(binascii.hexlify(b'\\xab\\xcd'), 'utf-8') 
'abcd'

整数とバイト列の相互変換

int.to_bytesint.from_bytes を使うことができます。

>>> x = 0xabcd
>>> x.to_bytes((x.bit_length() + 7) // 8, byteorder='big') 
b'\\xab\\xcd'
>>> format(int.from_bytes(b'\\xab\\xcd', byteorder='big'), 'x') 
'abcd'

以上のように、Pythonではバイト列と16進数の相互変換を行うための多くの方法があります。これらの方法を理解し、適切に使用することで、データの操作や処理がより簡単になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です