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

Linda Hamilton
リリース: 2024-10-20 14:52:02
オリジナル
764 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!