Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python ganze Zahlen in Byte-Strings und zurück konvertieren?
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:
<code class="python">(1024).to_bytes(2, byteorder='big') == b'\x04\x00'</code>
From_Bytes und From_Bytes
Die komplementäre Methode „from_bytes()“ kann eine Bytefolge zurück in eine Ganzzahl umwandeln:
<code class="python">int.from_bytes(b'\x04\x00', 'big') == 1024</code>
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:
<code class="python">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)</code>
Mit diesen Funktionen können Sie vorzeichenbehaftete Ganzzahlen in und aus Bytesequenzen kodieren und dekodieren.
Das obige ist der detaillierte Inhalt vonWie kann ich in Python ganze Zahlen in Byte-Strings und zurück konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!