Pythonでは、int
からbytes
への変換や、bytes
からint
への変換を行うことができます。これらの変換は、エンディアン(ビッグエンディアンまたはリトルエンディアン)を指定することが可能です。
intからbytesへの変換
n = 0b1111000111110010 # 2バイトでビッグエンディアン
n.to_bytes(2, 'big') # b'\\xf1\\xf2'
n.to_bytes(2, 'little') # b'\\xf2\\xf1'
bytesからintへの変換
int.from_bytes(b'\\xf1\\xf2', 'big') # 61938
int.from_bytes(b'\\xf2\\xf1', 'little') # 61938
また、struct
モジュールを使用してエンディアンを指定することも可能です。
import struct
n = 0b1111000111110010
struct.pack(">H", n) # b'\\xf1\\xf2'
struct.pack("<l", n) # b'\\xf2\\xf1\\x00\\x00'
これらの方法を使用することで、Pythonでエンディアンを考慮したバイトと整数の変換を行うことができます。これらの知識は、バイナリデータの操作や通信プロトコルの実装など、さまざまな場面で役立つでしょう。.