Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
13.11.2010, 10:30 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 10:49 von Lucki.)
Abgesehen davon, daß ich die Sonderbehandlung der Null noch gemacht habe, wäre dann mein Beispiel genau so falsch. Ich hatte nur das VI von Stenz vereinfacht, und jetzt habe ich endgültig keine Lust mehr.
Es gib ja unter unter dem Siemens-Link auch ein PDF mit offiziellem C-Progrämmchen zur Konvertierung, wenn man das einfach nach LV portiert könnte theoretisch überhaupt nichts schief gehen.
Das Siemens-Format ist logisch klar und einfach, und da fragt man sich, warum das offizielle Gleitkommaformat nach IEE-574 zwar im Prinzip ähnlich, aber letzlich komplizierter ist. Der Hauptgrund ist: man hat es bei IEEE so getrickst, daß die Lexikalische Ordnung der Zahlen erhalten bleibt. D.h. wenn bei 2 (single) Gleitkommazahlen G G2>G1 ist, dann gilt das in gleicher Weise auch für die beiden U32-Zahlen, in denen das Format hineingepackt ist. Genial!
Anzeige
13.11.2010, 11:35 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 12:50 von jg.)
P.S.: @Lucki: Die Null muss zumindest bei der Wandlung nach DBL oder SGL nicht gesondert behandelt werden. Die Mantisse ist ja Null,
und 0 * 2^-128 ist immer noch Null.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Natürlich stimmt mein VI. Und von welchem sprechen wir jetzt? Vom hochgeladenen VI oder vom Screenshot?
EDIT: <strike>Zumindest das hochgeladene VI stimmt. Der Screenshoot ist Tricky, das gebe ich zu. Scheint doch nicht ganz zu passen!</strike>
EDIT3: Hochgeladenes VI hat nicht gestimmt.:(Gelöscht.
' schrieb:die Bitanzeige der Mantisse und des Exponent stimmen schon nicht.
Auch die Bitanzeige stimmt, sowohl im hochgeladen VI als auch im gemachten Screenshot!
Im hochgeladenen VI ist jetzt das Array für den Exponenten bloß andersrum dargestellt, es fängt halt mit Bit 24 an, nicht mit dem Vorzeichen (Bit 31) wie bei dir.
Und im Screenshot gilt das auch für die Anzeige der Mantisse. Aufpassen, hier ist am Build-Array die Reihenfolge vertauscht!
' schrieb:Ich habe bei der Bitbezeichnung der Mantisse aus der 1 eine 0 gemacht. Danke :-).
Das VI von Lucki funktioniert einwandfrei.
Lucki hat selber zugegeben, dass es für negative Zahlen NICHT korrekt funktioniert.
Gruß, Jens
EDIT: Ups: Mea Culpa, im letzten Screenshot ist die Konstante, durch die geteilt wird, verkehrt:
EDIT 2: Nee, immer noch nicht ganz?!
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Ich nehme alles zurück, was ich gesagt/geschrieben habe.
Ich habe das mit dem Vorzeichen-Bit für die Mantisse komplett falsch aus der Doku interpretiert. Das ist nicht ein Bit, das ein + oder - Vorzeichen anzeigt, sondern bei Bit 24=True wird abgezogen. Somit hat dein VI bei der Berechnung der Mantisse alles richtig gemacht. Trotzdem fehlt dir die Vorzeichenbehandlung beim Exponenten.
So, und jetzt noch ein Screenshot, der (hoffentlich) passt (zumindest bei den Bsps, die du veröffentlicht hast):
Mein schöngeistiges Wesen sträubt sich gegen so eine Angabe, auch wenn alles richtig herauskommt.
Unter Byte, Word, Doppelword versteht man gemeiniglich vorzeichenlose Integer U8, U16, U32.
Es wäre also sauberer, die beiden Eingangs-Doppelworte als U16 zu deklarieren, und dann würde die obigen Angaben so lauten:
DW 0 = 63304 DW 1 = 48822 ergibt SGL 0,00111
Man kann negative Werte und negative Exponenten leicht selbst produzieren, indem man die Doppelworte U16 auf HEX-Anzeige umstellt:
Wenn im DW 0 in der ersten Stelle der Wert 8..F drin steht, ist der Exponent negativ, und wenn in der dritten Stelle 8..F drin steht, ist die Zahl negativ.
13.11.2010, 14:51 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 14:54 von stenzr.)
Du hast sicherlich recht, die S5 stellt mit mir dieses Format zur Verfügung und deshalb habe ich es auch verwendet
Ich hätte die Datenwörter natürlich in KH (Hexadezimal) angeben können.