Pythonのbytes
型はバイナリデータを扱うためのデータ型で、文字列の文字コードを表しています。この記事では、Pythonのbytes
型と数値の相互変換について詳しく解説します。
bytesの基本的な使い方
Pythonのbytes
型は、バイトの不変なシーケンスです。以下に、bytes
型の基本的な使い方を示します。
# bytesの自力入力
b'\x00\x01\x02\x03' # result: b'\x00\x01\x02\x03'
b'\x64\x65\x66\x67' # result: b'defg' # asciiコードに対応した文字が表示されている
# ファイルからbytesで読込
with open('filename.bin', 'rb') as fp:
all_bytes = fp.read()
# bytesの部分切出し
a = b'\x00\x01\x02\x03'
a[1:3] # listなのでlistと同じ要領でスライスが可能
# result: b'\x01\x02'
整数とbytesの相互変換
整数とbytes
型の間で相互変換を行うことができます。以下に、その方法を示します。
# 整数をbytesへ変換
a = 255
a.to_bytes(2, 'little') # to_bytes(変換後のバイト数, エンディアン)
# result: b'\xff\x00'
# bytesから整数へ
byts = a.to_bytes(2, 'little')
int.from_bytes(byts, 'little') # int.from_bytes(bytes, エンディアン)
# result: 255
# bytesから整数へ(符号付き)
a = -255
byts = a.to_bytes(2, 'little', signed=True)
int.from_bytes(byts, 'little', signed=True) # int.from_bytes(bytes, エンディアン, signed=True)
# result: -255
以上がPythonのbytes
型と数値の相互変換の基本的な使い方です。これらの知識を活用して、Pythonでのバイナリデータの操作をより効率的に行いましょう。