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!