So konvertieren Sie eine Byte-Zeichenfolge in Python in eine Ganzzahl: Welche Methode ist die beste?

Barbara Streisand
Freigeben: 2024-10-26 04:04:02
Original
225 Leute haben es durchsucht

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

So konvertieren Sie einen Byte-String in eine Ganzzahl in Python

Das Konvertieren eines Byte-Strings in eine Ganzzahl in Python kann mit verschiedenen Methoden erreicht werden Methoden, von denen einige eine bessere Leistung bieten als andere.

Eingebaute Funktion: int.from_bytes()

In Python-Versionen 3.2 und höher können Sie direkt konvertieren eine Byte-Zeichenfolge in eine Ganzzahl mit der Funktion int.from_bytes():

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

Hier kann Byteorder entweder „big“ oder „little“ sein, um die Endianness der Byte-Zeichenfolge anzugeben. Big-Endian bedeutet, dass das höchstwertige Byte zuerst gespeichert wird, während Little-Endian bedeutet, dass das niedrigstwertige Byte zuerst gespeichert wird.

Binärdarstellung verwenden

Ein anderer Ansatz ist Konvertieren Sie die Bytezeichenfolge in ihre binäre Darstellung und wenden Sie dann die Funktion int() an:

<code class="python">my_int = int(''.join(format(byte, '08b') for byte in b'y\xcc\xa6\xbb'[::-1]), 2)</code>
Nach dem Login kopieren

Diese Methode ist langsamer als int.from_bytes(), kann aber nützlich sein, wenn Sie mit Binärdaten arbeiten müssen direkt.

Benutzerdefinierte Funktion

Sie können auch Ihre eigene benutzerdefinierte Funktion erstellen, um eine Bytezeichenfolge in eine Ganzzahl umzuwandeln:

<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>
Nach dem Login kopieren

Leistungsvergleich

Die Leistung dieser verschiedenen Methoden kann je nach Länge und Endianness der Bytefolge variieren. Im Allgemeinen ist int.from_bytes() die schnellste Methode, gefolgt von der binären Darstellungsmethode und dann der benutzerdefinierten Funktion.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie eine Byte-Zeichenfolge in Python in eine Ganzzahl: Welche Methode ist die beste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!