Forum: PC-Programmierung Pyhton - Umwandlung von Integer in Float


von Matt B. (mattb)


Lesenswert?

Hallo,

von einem Geräte lese ich mittels Modbus zwei 16-Bit Register aus, 
welche zusammen einen 32-Bit-Wert als Float darstellen.

Das ganze mache ich in Python.
1
int_value = (register1 << 16) + register2

Wie wandle ich die erhaltene 32-Bit-Zahl in einen Float-Wert um?

Hier noch ein Zahlenbeispiel:
1
register1 = 17586
2
register2 = 63453
3
4
int_value = (17586 << 16) + 63453 = 1152579549
5
6
1152579549 = 0b01000100101100101111011111011101 => 1431.7457

Danke
und schöne Weihnachten!

von chrisd089 (Gast)


Lesenswert?

Hi,

probiers mal mit struct pack/unpack:

import struct

register1 = 17586
register2 = 63453

reg1 = struct.pack(">H", register1)
reg2 = struct.pack(">H", register2)

float_val = struct.unpack(">f", reg1+reg2)


Frohe Weihnachten!

von Matt B. (mattb)


Lesenswert?

Vielen Dank!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.