Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man in Python eine Bytefolge in eine Ganzzahl?

Wie konvertiert man in Python eine Bytefolge in eine Ganzzahl?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 13:13:03994Durchsuche

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

Konvertieren einer Bytefolge in eine Ganzzahl in Python

Eine häufige Aufgabe bei der Arbeit mit Daten in Python ist die Notwendigkeit, eine Bytefolge in eine Ganzzahl umzuwandeln. Dies kann je nach Python-Version und den spezifischen Anforderungen auf verschiedene Arten erfolgen.

Verwenden von int.from_bytes() (Python 3.2)

In Python 3.2 und höher ist die empfohlene Methode für Das Konvertieren einer Bytefolge in eine Ganzzahl ist die Funktion int.from_bytes(). Diese Funktion benötigt zwei Argumente:

  1. Die zu konvertierende Bytefolge.
  2. Die Endianness der Bytefolge, die entweder „groß“ oder „klein“ sein kann.

Um beispielsweise die Bytezeichenfolge „yxccxa6xbb“ in eine Ganzzahl in Big-Endian-Reihenfolge umzuwandeln, würden Sie den folgenden Code verwenden:

<code class="python">int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>

Dies würde den Ganzzahlwert 2043455163 zurückgeben.

Um dieselbe Bytefolge in eine Ganzzahl in Little-Endian-Reihenfolge umzuwandeln, würden Sie den folgenden Code verwenden:

<code class="python">int.from_bytes(b'y\xcc\xa6\xbb', byteorder='little')</code>

Dies würde den Ganzzahlwert 3148270713 zurückgeben.

Verwendung des Strukturmoduls

Eine andere Methode zum Konvertieren einer Bytefolge in eine Ganzzahl ist die Verwendung des Strukturmoduls. Das Strukturmodul bietet eine Reihe von Funktionen zum Packen und Entpacken von Daten in verschiedenen Formaten. Um eine Bytefolge mithilfe des Strukturmoduls in eine Ganzzahl umzuwandeln, verwenden Sie den folgenden Code:

<code class="python">import struct

int_value = struct.unpack('>L', b'y\xcc\xa6\xbb')[0]</code>

Das Argument „>L“ gibt an, dass die Bytefolge als Little-Endian interpretiert werden soll , vorzeichenlose 32-Bit-Ganzzahl.

Verwenden einer benutzerdefinierten Funktion

Wenn Sie mehr Kontrolle über den Konvertierungsprozess benötigen, können Sie auch Ihre eigene benutzerdefinierte Funktion schreiben, um eine Bytefolge in eine Ganzzahl umzuwandeln . Hier ist ein Beispiel einer benutzerdefinierten Funktion, die eine Bytezeichenfolge in Big-Endian-Reihenfolge in eine Ganzzahl umwandelt:

<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>

Diese Funktion iteriert über die Bytezeichenfolge und verschiebt den aktuellen Wert um 8 Bits nach links für jedes Byte. Der Bytewert wird dann zum aktuellen Wert addiert, was den endgültigen Ganzzahlwert ergibt.

Welche Methode Sie auch wählen, die Konvertierung einer Bytefolge in eine Ganzzahl in Python ist ein unkomplizierter Vorgang. Wenn Sie die verschiedenen verfügbaren Optionen verstehen, können Sie die Methode auswählen, die Ihren Anforderungen am besten entspricht.

Das obige ist der detaillierte Inhalt vonWie konvertiert man in Python eine Bytefolge in eine Ganzzahl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn