Downloadbereich > Anwenderbausteine - Beispiele

Anwenderfunktion zum konvertieren von IEEE754 nach INTEGER

(1/6) > >>

weiss_nix:
Hallo easy Gemeinde,

pünktlich zum Fest habe ich einen IEEE754 Konverter programmiert und stelle euch diesen zur Verfügung.
Die Umrechnung ist auf Grund der beschränkten Möglichkeiten (mit erträglichem Aufwand 31 nutzbare Bit)
natürlich mit Rundungsfehlern behaftet welche sich aber in Grenzen halten da die Mantisse auf 9 Kommastellen basiert!

IA01 = IEEE754 32 Bit-Wert
IA02 = Gewünschte Festkomma Darstellung (Werte 1 bis max. 9, sonst ist das Ergebnis möglicherweise nicht wie erwartet)

Q01 = Achtung! wenn TRUE dann besteht ein Fehler in der IEEE Konvertierung
Q02 = Achtung! wenn TRUE dann besteht ein Fehler Festkomma Umrechnung
Q03 = Vorzeichen

QA01 = Exponent
QA02 = Mantisse
QA03 = Integer Anteil
QA04 = Dezimal Anteil
QA05 = Festkomma Integer

Sollte Q1/Q2 einen Fehler anzeigen habe ich auf das Löschen der berechneten
Werte absichtlich verzichtet um eine leichtere Fehleranalyse zu ermöglichen!

Für Fragen, konstruktive Kritik und natürlich Lob bin ich jederzeit empfänglich.

Weihnachtliche Grüße

UPDATE 15.3.2023
Grund: Fehler bei negativem Exponent, wird von easyE4 nicht unterstützt!

*** ACHTUNG UPDATE 12.5.2023 ***
Grund: Anschlussbeschreibung wird von easySoft 8 unterdrückt!
Bausteinbeschreibung im Bausteinkommentar eingefügt.

PS: Letztgültige Version V1.12 Passwort 'wx'

joelas:
Hallo Weiss_nix,

danke vielmals, Dein Beispiel ist auf jeden Fall schon mal sehr lehrreich. Hatte nicht gewusst, dass es "**", "MOD" und Index-Operatoren "M[MDnn]" gibt. Das macht es natuerlich viel einfacher. Werde Deinen Block erst im naechsten Jahr testen koennen.
Trotzdem schon mal vielen Dank! Ich wuensche eine  friedvolle Weihnachtszeit.
Viele Gruesse aus Norwegen
Joel

weiss_nix:
Hallo easy Gemeinde,

... ich habe die Funktion nochmal überarbeitet und die Genauigkeit der internen Berechnung auf 18 Kommastellen erweitert,
da das Ergebnis (aus meiner Sicht) bei großen Zahlen zu ungenau war!
Die Schnittstelle hat sich nicht verändert.

Gruß

PS: Letztgültige Version siehe 1. Beitrag!

weiss_nix:
Hallo easy Gemeinde, ich schon wieder ;)

- die Rundungsfehler konnten auf die ersten 5 Bit der Mantisse (kleinsten Werte) beschränkt werden
- der interne Ablauf wurde etwas verändert
- die Berechnung erfolgt nur bis Exponent 30 (bessere Performance bzw. Werte mit DWord sonst nicht darstellbar)
- einige Werte wurden durch Konstanten ersetzt (braucht weniger Speicher)
- die Schnittstelle hat sich nicht verändert

Für "ST interessierte" ... schaut es euch selber an.

Ich denke das sollte die letzte Änderung gewesen sein, außer ihr findet Fehler!
Wenn jemandem zu viel Speicher verbraten wird dann Kommentare löschen oder selber was Programmieren 8)

Ich wünsche Euch ein erfolgreiches neues Jahr

PS: Letztgültige Version siehe 1. Beitrag!

joelas:
Hallo "weiss_nix",

vielen Dank fuer die ueberarbeitete Version 1.11. Leider ist da jetzt ein Passwortschutz drauf....

Viele Gruesse aus Norwegen

JoelAs

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln