Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie eine Byte-Zeichenfolge in Python in eine Ganzzahl: Welche Methode ist die beste?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 04:04:02225Durchsuche

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>

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>

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>

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!

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