-> Hier kostenlos registrieren
Hallo,
ich habe eine Simatic S7-300 315-2 DP, und als Software die Simatic Step 7 V 5.2
Von einem Profibusteilnehmer bekomme ich einen Messwert als Gleitzahl im Bereich zwischen 1000 und 0,5 E -10
Das Display in welchem der Wert angezeigt werden soll kann nur Integerzahlen darstellen.
Jetzt suche ich einen eleganten Weg um die Gleitpunktzahl 32 Bit in eine 4stellige Mantisse und einen 2stelligen Exponenten mit Vorzeichen zu zerlegen.
Im Moment würde ich die Zahl wiederholt mit 10 multiplizieren, oder durch 10 dividieren, bis das Ergebnis größer, bzw. kleiner 1 ist, um so den Exponent zu ermitteln. Danach würde ich die Mantisse durch Division bzw. Multiplikation mit der ursprünglichen Zahl mit dem Exponenten bestimmen, auf 4 Stellen kürzen usw...
Das erscheint mir aber als keine sehr elegante Lösung, hat vielleicht jemand eine bessere Idee?
mfG
emtewe
ich habe eine Simatic S7-300 315-2 DP, und als Software die Simatic Step 7 V 5.2
Von einem Profibusteilnehmer bekomme ich einen Messwert als Gleitzahl im Bereich zwischen 1000 und 0,5 E -10
Das Display in welchem der Wert angezeigt werden soll kann nur Integerzahlen darstellen.
Jetzt suche ich einen eleganten Weg um die Gleitpunktzahl 32 Bit in eine 4stellige Mantisse und einen 2stelligen Exponenten mit Vorzeichen zu zerlegen.
Im Moment würde ich die Zahl wiederholt mit 10 multiplizieren, oder durch 10 dividieren, bis das Ergebnis größer, bzw. kleiner 1 ist, um so den Exponent zu ermitteln. Danach würde ich die Mantisse durch Division bzw. Multiplikation mit der ursprünglichen Zahl mit dem Exponenten bestimmen, auf 4 Stellen kürzen usw...
Das erscheint mir aber als keine sehr elegante Lösung, hat vielleicht jemand eine bessere Idee?
mfG
emtewe