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

Barbara Streisand
リリース: 2024-10-26 13:13:03
オリジナル
1067 人が閲覧しました

How to convert a string of bytes to an integer in Python?

Python でバイト文字列を整数に変換する

Python でデータを扱うときの一般的なタスクの 1 つは、バイト文字列を整数に変換する必要があることです。これは、Python のバージョンと特定の要件に応じて、いくつかの方法で行うことができます。

int.from_bytes() を使用する (Python 3.2 )

Python 3.2 以降では、次の方法が推奨されます。バイト文字列を整数に変換するのは int.from_bytes() 関数です。この関数は 2 つの引数を取ります:

  1. 変換するバイト文字列。
  2. バイト文字列のエンディアン。'big' または 'little' のいずれかです。

たとえば、バイト文字列 '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 を返します。

struct Module

の使用 バイト文字列を整数に変換するもう 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 サイトの他の関連記事を参照してください。

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