Interpretieren Sie die Liste der Ganzzahlen als Float in Python

Ich versuche, ein C-Code-Snippet in Python zu konvertieren.

Der Zweck dieser Funktion besteht darin, 4, 8-Bit-Messwerte von einer SPS zu nehmen und sie zu einem einzigen Float zu dekodieren.

float conv_float_s7_pc(char * plc_real) { char tmp[4]; tmp[0] = * (plc_real + 3); tmp[1] = * (plc_real + 2); tmp[2] = * (plc_real + 1); tmp[3] = * (plc_real + 0); return (* (float *) tmp) ; } 

Gibt es irgendeine Python-Magie, die diese Funktion sauber machen kann?

Während ich versuche, die obige Funktion zu konvertieren, ist die allgemeinere Frage, wie würdest du Erinnerung "Uminterpretationen" wie diese in Python?

Bearbeiten

Das hat mir was ich brauchte

 import struct def conv_to_float(plc): temp = struct.pack("BBBB", plc[0], plc[1], plc[2], plc[3]) output = struct.unpack(">f", temp)[0] return output 

One Solution collect form web for “Interpretieren Sie die Liste der Ganzzahlen als Float in Python”

Verwenden Sie das struct-Modul mit dem f Format-Zeichen

 >>> import struct >>> plc_real = "1234" >>> struct.unpack("f", plc_real)[0] 1.6688933612840628e-07 

Vergewissern Sie sich, dass Sie < oder > , um die Endlichkeit festzulegen, die Sie benötigen

  • Python-Variablen sind Zeiger?
  • Boost.Python-Konverter für Zeiger funktioniert nicht
  • Wie verpacke ich diese C-Funktion mit mehreren Argumenten mit Ctypes?
  • Python-Ctypen: Kopieren des Inhaltes der Struktur
  • Python ist die beste Programmiersprache der Welt.