ホームページ  >  記事  >  バックエンド開発  >  Python でバイト文字列を整数に変換する方法: どの方法が最適ですか?

Python でバイト文字列を整数に変換する方法: どの方法が最適ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 04:04:02225ブラウズ

How to Convert a Byte String to an Integer in Python: Which Method is Best?

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

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