Python でバイト文字列を整数に変換する方法
Python でバイト文字列を整数に変換するには、さまざまなメソッドを使用します。
組み込み関数: int.from_bytes()
Python バージョン 3.2 以降では、直接変換できます。 int.from_bytes() 関数を使用して、バイト文字列を整数に変換します。
<code class="python">my_int = int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>
ここで、byteorder は「big」または「little」のいずれかでバイト文字列のエンディアンを指定できます。ビッグエンディアンは最上位バイトが最初に格納されることを意味し、リトルエンディアンは最下位バイトが最初に格納されることを意味します。
バイナリ表現の使用
別のアプローチは次のとおりです。バイト文字列をバイナリ表現に変換してから、int() 関数を適用します。
<code class="python">my_int = int(''.join(format(byte, '08b') for byte in b'y\xcc\xa6\xbb'[::-1]), 2)</code>
このメソッドは int.from_bytes() よりも遅いですが、バイナリ データを操作する必要がある場合に便利です。
カスタム関数
バイト文字列を整数に変換する独自のカスタム関数を作成することもできます:
<code class="python">def convert_bytes_to_int(byte_string, endianness='big'): if endianness == 'big': return sum(ord(c) << (i * 8) for i, c in enumerate(byte_string)) else: return sum(ord(c) << (len(byte_string) - i - 1) * 8 for i, c in enumerate(byte_string))</code>
パフォーマンスの比較
これらのさまざまなメソッドのパフォーマンスは、バイト文字列の長さとエンディアンによって異なる場合があります。一般に、int.from_bytes() が最も速いメソッドで、次にバイナリ表現メソッド、カスタム関数が続きます。
以上がPython でバイト文字列を整数に変換する方法: どの方法が最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。