Pythonでは、bytesintの間で相互に変換することが可能です。この記事では、その方法を詳しく解説します。

bytesからintへの変換

Pythonでは、bytesからintへの変換は非常に簡単です。以下に例を示します。

# ビッグエンディアン
>>> int.from_bytes(b'\\x00\\x80', 'big')
128

# リトルエンディアン
>>> int.from_bytes(b'\\x80\\x00\\x00\\x00', 'little')
128

この場合、第二引数にエンディアンを指定します。エンディアンには、’big’(ビッグエンディアン)と’little’(リトルエンディアン)の2つがあります。

intからbytesへの変換

逆に、intからbytesへの変換も可能です。

# ビッグエンディアン、2バイト
>>> a = 128
>>> a.to_bytes(2, 'big')
b'\\x00\\x80'

# リトルエンディアン、4バイト
>>> a.to_bytes(4, 'little')
b'\\x80\\x00\\x00\\x00'

この場合も、第二引数にエンディアンを指定します。

注意点

以上の方法はPython3.2以降でのみ使用可能です。それ以前のバージョンでは動作しないので注意が必要です。

また、intからbytesへの変換時に指定したバイト数で表現できない大きさの場合は、OverflowErrorが発生します。

まとめ

Pythonでは、bytesintの間で相互に変換することが可能です。これは、通信や暗号などを扱う際に頻繁に必要となる操作で、Pythonでは非常に簡単に行うことができます。ただし、Pythonのバージョンやエンディアンに注意しながら使用する必要があります。.

投稿者 admin

コメントを残す

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