「bytes(n)」を使用したバイト文字列の作成
Python 3 の「bytes(n)」関数は、整数をバイナリ表現に変換しますが、代わりに null バイト (b'\x00') で埋められた長さ n のバイト文字列を作成します。この動作は、整数をバイトにエンコードする手段として「to_bytes()」メソッドが導入された Python 3.2 に由来します。
To_Bytes および To_Bytes
()" メソッドを使用すると、バイト順序 (ビッグ エンディアンまたはリトル エンディアン) と長さを指定して、整数をバイト表現に明示的に変換できます。例:
(1024).to_bytes(2, byteorder='big') == b'\x04\x00'
From_Bytes および From_Bytes
補完的な「from_bytes()」メソッドは、バイト シーケンスを整数に変換し直すことができます:
int.from_bytes(b'\x04\x00', 'big') == 1024
符号なし整数
「to_bytes()」メソッドは、負でない (符号なし) 整数に対して機能します。符号付き整数を処理するには、少し異なるアプローチが必要です。
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)
これらの関数を使用すると、符号付き整数をバイト シーケンスにエンコードしたり、バイト シーケンスからデコードしたりできます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3