Lesen von 3 Bytes als Ganzzahl

9

Wie kann ich 3 Bytes als ganze Zahl lesen?

Liefert struct-Modul so etwas?

Ich kann in 3 Bytes lesen und ein zusätzliches \ x00 hinzufügen und dann als 4-Byte-Integer interpretieren, aber das scheint unnötig.

    
MxyL 18.04.2012, 19:33
quelle

3 Antworten

13

Das Strukturmodul hat keine Option für 3-Byte-Ganzzahlen, daher denke ich, dass Ihre Idee, '\ x00' anzuhängen, der einfachste Weg ist.

%Vor%     
unutbu 18.04.2012, 19:42
quelle
7

Ich glaube, ab 3.2 hat int eine neue Methode .from_bytes entwickelt, so dass Sie anstelle von struct.unpack Folgendes verwenden können:

%Vor%

Zur Referenz: Ссылка

    
Jon Clements 28.05.2013 22:49
quelle
2

Eine Alternative für Python 2 und ohne das struct Modul wäre:

%Vor%

wobei die Bytereihenfolge Big-Endian ist. Dies ergibt das gleiche Ergebnis wie bei unutbu Antwort:

%Vor%

Für Little-Endian Byte-Reihenfolge wäre die Umwandlung:

%Vor%     
cvr 05.11.2015 15:54
quelle

Tags und Links