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

Linda Hamilton
Freigeben: 2024-10-20 14:52:02
Original
764 Leute haben es durchsucht

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:

<code class="python">(1024).to_bytes(2, byteorder='big') == b'\x04\x00'</code>
Nach dem Login kopieren

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

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

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!

Quelle:php
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!