ホームページ  >  記事  >  バックエンド開発  >  Python で整数をバイト文字列に変換して戻すにはどうすればよいですか?

Python で整数をバイト文字列に変換して戻すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-20 14:52:02765ブラウズ

How Can I Convert Integers to Byte Strings and Back in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。