ホームページ >バックエンド開発 >Python チュートリアル >Python で整数をバイト文字列に変換して戻すにはどうすればよいですか?
「bytes(n)」を使用したバイト文字列の作成
Python 3 の「bytes(n)」関数は、整数をバイナリ表現に変換しますが、代わりに NULL バイト (b'x00') で埋められた長さ n のバイト文字列を作成します。この動作は、整数をバイトにエンコードする手段として「to_bytes()」メソッドが導入された Python 3.2 に由来しています。
To_Bytes および To_Bytes
()" メソッドを使用すると、バイト順序 (ビッグ エンディアンまたはリトル エンディアン) と長さを指定して、整数をバイト表現に明示的に変換できます。例:
<code class="python">(1024).to_bytes(2, byteorder='big') == b'\x04\x00'</code>
From_Bytes および From_Bytes
補完的な「from_bytes()」メソッドは、バイト シーケンスを整数に変換して戻すことができます。
<code class="python">int.from_bytes(b'\x04\x00', 'big') == 1024</code>
符号なし整数
「to_bytes()」メソッドは、負でない (符号なし) 整数に対して機能します。符号付き整数を処理するには、少し異なるアプローチが必要です。
<code class="python">def int_to_bytes(number: int) -> bytes: return number.to_bytes(length=(8 + (number + (number < 0)).bit_length()) // 8, byteorder='big', signed=True) def int_from_bytes(binary_data: bytes) -> Optional[int]: return int.from_bytes(binary_data, byteorder='big', signed=True)</code>
これらの関数を使用すると、符号付き整数をバイト シーケンスにエンコードしたり、バイト シーケンスからデコードしたりできます。
以上がPython で整数をバイト文字列に変換して戻すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。