INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

S5 Gleitpunktzahl lesen und umwandeln



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.)
Beitrag #11

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
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!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 11:35 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 12:50 von jg.)
Beitrag #12

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
Dank Luckis Arbeit geht mein VI noch einfacher zu stricken:
<strike>[attachment=59593:Image01.png]</strike>
EDIT: Korrekter Upload: http://www.labviewforum.de/index.php?s=&am...st&p=110562
Gruß, Jens

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 11:41
Beitrag #13

stenzr Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2006

7.1 / 2009
1996
de

59
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
Hallo Jens.

Die Ergebnisse deines VIs stimmen leider nicht, die Bitanzeige der Mantisse und des Exponent stimmen schon nicht.

Ich habe bei der Bitbezeichnung der Mantisse aus der 1 eine 0 gemacht. Danke :-).
Das VI von Lucki funktioniert einwandfrei.

Gruß Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 12:00 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 12:55 von jg.)
Beitrag #14

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
' schrieb:Hallo Jens.

Die Ergebnisse deines VIs stimmen leider nicht,
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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 12:21 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 12:26 von stenzr.)
Beitrag #15

stenzr Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2006

7.1 / 2009
1996
de

59
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
Hallo Jens

Ich habe dein VI KG_NACH_SGL_V2 getestet und es klappt nicht.

DW 0 = 2379 DW 1 = 0 ergibt SGL 300
DW 0 = 2485 DW 1 = 0 ergibt SGL -300
und
DW 0 = 1903 DW 1 = 6554 ergibt SGL 111.1
DW 0 = 1936 DW 1 = -6554 ergibt SGL -111.1

Und so funktioniert es bei der Version von Lucki (V2) und von mir (V1).

Gruß

Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 12:44 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 12:59 von jg.)
Beitrag #16

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
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):
   

EDIT: Und noch eine korrigierte V2:
Lv09_img2
Sonstige .vi  KG_NACH_SGL_V2.vi (Größe: 22,42 KB / Downloads: 209)


Gruß, Jens

EDIT2: @stenzr: Hast du mal ein Bsp für eine Zahl kleiner als 1 zur Hand? Dann ist der Exponent negativ!

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 13:00 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 13:12 von stenzr.)
Beitrag #17

stenzr Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2006

7.1 / 2009
1996
de

59
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
Hallo Jens

Sieht gut aus, jetzt können wir beruhigt ins Wochenende gehen.
Schönen Dank für eure Geduld.

Gruß Ralf

DW 0 = -2232 DW 1 = -16714 ergibt SGL 0,00111

Ich hab in meiner Version im Array (Index 0) für den Exponent die 0 gegen ein -128 getauscht und jetzt gehen auch Zahlen kleiner 0
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 14:04 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 14:21 von Lucki.)
Beitrag #18

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
' schrieb:DW 0 = -2232 DW 1 = -16714 ergibt SGL 0,00111
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.
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2010, 14:51 (Dieser Beitrag wurde zuletzt bearbeitet: 13.11.2010 14:54 von stenzr.)
Beitrag #19

stenzr Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jun 2006

7.1 / 2009
1996
de

59
Deutschland
S5 Gleitpunktzahl lesen und umwandeln
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.

Gruß Ralf
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: