„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich in Python Ganzzahlen in Byte-Strings und zurück konvertieren?

Wie kann ich in Python Ganzzahlen in Byte-Strings und zurück konvertieren?

Veröffentlicht am 09.11.2024
Durchsuche:625

How Can I Convert Integers to Byte Strings and Back in Python?

Erstellen von Byte-Strings mit „bytes(n)“

Die Funktion „bytes(n)“ in Python 3 konvertiert keine Ganzzahl zu seiner Binärdarstellung, sondern erstellt stattdessen eine Bytefolge der Länge n, gefüllt mit Nullbytes (b'\x00'). Dieses Verhalten stammt aus Python 3.2, wo die Methode „to_bytes()“ als Mittel zum Codieren von Ganzzahlen in Bytes eingeführt wurde.

To_Bytes und To_Bytes

Die Methode „to_bytes ()“-Methode ermöglicht die explizite Konvertierung einer Ganzzahl in eine Byte-Darstellung unter Angabe der Byte-Reihenfolge (Big-Endian oder Little-Endian) und der Länge. Zum Beispiel:

(1024).to_bytes(2, byteorder='big') == b'\x04\x00'

From_Bytes und From_Bytes

Die komplementäre Methode „from_bytes()“ kann eine Bytefolge wieder in eine Ganzzahl umwandeln:

int.from_bytes(b'\x04\x00', 'big') == 1024

Ganzzahlen ohne Vorzeichen

Die Methode „to_bytes()“ funktioniert für nicht negative (vorzeichenlose) Ganzzahlen. Um vorzeichenbehaftete Ganzzahlen zu verarbeiten, ist ein etwas anderer Ansatz erforderlich:

def int_to_bytes(number: int) -> bytes:
    return number.to_bytes(length=(8   (number   (number < 0)).bit_length()) // 8, byteorder='big', signed=True)

def int_from_bytes(binary_data: bytes) -> Optional[int]:
    return int.from_bytes(binary_data, byteorder='big', signed=True)

Mit diesen Funktionen können Sie vorzeichenbehaftete Ganzzahlen in und aus Bytesequenzen kodieren und dekodieren.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729407016. Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3