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

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

Barbara Streisand
リリース: 2024-10-26 04:04:02
オリジナル
308 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート