Konvertieren von einem C-Double in zwei Hex-Strings übertragen

8

mein allererster Tag mit Python.

Ich möchte nach einer Trace-Datei filtern, die von C generiert wurde. Jeder Doppel von C wird in der Datei von formatiert zwei hexadezimale Strings, die 32 Bit des 64-fachen repräsentieren.

z.B. 1234567890.3 (C doppelt)
Inside-Datei:

%Vor%

Wie kann ich es analysieren und kombinieren, um mit einem Python-Float weiter zu arbeiten?

Vielen Dank im Voraus

    
Wolfgang R. 15.07.2011, 21:52
quelle

2 Antworten

9

Sie können struct verwenden, indem Sie den 'd' Modifikator für 'double' verwenden:

%Vor%

Passen Sie auf, in welcher Reihenfolge Sie die Doubles anhängen, das obige geht von einer Big-Endian-Maschine aus. Außerdem habe ich 0x entfernt, da die Funktion decode dies nicht erwartet.

edit: Wenn Sie Python 3 verwenden, müssen Sie bytes.fromhex anstelle von ''.decode('hex') verwenden.

Nur um eine Alternative zu geben (das obige ist eine sehr schöne Lösung):

%Vor%     
yan 15.07.2011, 22:00
quelle
0

Hier ist ein IEEE-Standard für Gleitpunkte und wie er erstellt wird:

Ссылка

    
Tbone 15.07.2011 22:00
quelle