Python でデータを扱うときの一般的なタスクの 1 つは、バイト文字列を整数に変換する必要があることです。これは、Python のバージョンと特定の要件に応じて、いくつかの方法で行うことができます。
Python 3.2 以降では、次の方法が推奨されます。バイト文字列を整数に変換するのは int.from_bytes() 関数です。この関数は 2 つの引数を取ります:
たとえば、バイト文字列 'yxccxa6xbb' をビッグエンディアン順で整数に変換するには、次のコードを使用します。
<code class="python">int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>
これは、整数値 2043455163 を返します。
同じバイト文字列をリトルエンディアン順で整数に変換するには、次のコードを使用します。
<code class="python">int.from_bytes(b'y\xcc\xa6\xbb', byteorder='little')</code>
これは、整数値 3148270713 を返します。
の使用 バイト文字列を整数に変換するもう 1 つの方法は、struct モジュールを使用することです。 struct モジュールは、さまざまな形式でデータをパックおよびアンパックするための関数を多数提供します。 struct モジュールを使用してバイト文字列を整数に変換するには、次のコードを使用します。
<code class="python">import struct int_value = struct.unpack('>L', b'y\xcc\xa6\xbb')[0]</code>
'>L' 引数は、バイト文字列がリトルエンディアンとして解釈されることを指定します。 、符号なし 32 ビット整数。
変換プロセスをさらに制御する必要がある場合は、バイト文字列を整数に変換する独自のカスタム関数を作成することもできます。 。以下は、バイト文字列をビッグエンディアン順で整数に変換するカスタム関数の例です:
<code class="python">def bytes_to_int(bytestring): """Convert a string of bytes to an integer.""" value = 0 for byte in bytestring: value <<= 8 value |= byte return value</code>
この関数は、バイト文字列を反復処理し、現在の値を 8 ビット左にシフトすることによって機能します。バイトごとに。次に、バイト値が現在の値に追加され、最終的な整数値が得られます。
どの方法を選択しても、Python でバイト文字列を整数に変換するプロセスは簡単です。利用可能なさまざまなオプションを理解することで、ニーズに最も適した方法を選択できます。
以上がPython でバイト文字列を整数に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。