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 

Datenstring in Fließkommazahl



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.07.2006, 18:00
Beitrag #1

Bernhard_ Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2006

8.00
2006
kA


Deutschland
Datenstring in Fließkommazahl
Hallo liebes Forum,

Über RS232 kommt ein Datenstring an, in dem (MSB zuerst) die vier Bytes einer 32-Bit Fließkommazahl enthalten sind. Der Wert dieser Zahl soll als ASCII-String dargestellt werden.

Dazu habe ich den betreffenden Teilstring mit "String in Daten konvertieren " in eine 32-Bit Fließkommazahl konvertiert und dann mit "Zahl nach String (Fließkommadarstellung)" in einen String gewandelt.
Leider ist das Ergebnis NaN.

Wäre klasse, wenn mir jemand den Fehler in meiner Vorgehensweise oder die Korrekte Lösung nennen könnte.

Vielen Dank im Voraus und viele Grüße,
Bernhard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2006, 01:12
Beitrag #2

kokisan2000 Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Jul 2006

LV2012
2000
DE_EN

74206
Deutschland
Datenstring in Fließkommazahl
Hallo Bernhard,

NaN bedeutet bei 4 Byte Gleitkommazahlen nach IEEE, dass die Zahl ausserhalb des darstellenden Bereiches zwischen 1.175E-38 und 3.403e38 liegt. Im Standardformat nach IEEE4 ist die Bitverteilung wie folgt:

v:1|e:8|m:23

wobei v das Vorzeichen, e den Exponenten und m die Mantisse beschreibt.
Die Zahl berechnet sich dann zu:

wenn 0<e<255 : x = (-1)^v * 1.m * 2^(e-127)

1.m bedeutet 1+m/2^23

Soweit die Theorie ;-)

Mit dieser Formel kann man den ankommenden Datenstring entsprechend zerlegen und die Zahl einzeln zusammenbauen. Wie das geht, schicke ich im Beispiel mit. In Deinem Fall mußt Du dann nur noch den ankommenden Datenstring entsprechend obiger Bitfelder zerlegen.

Mag sein, dass es eine elegantere Lösung gibt, .....Ich lerne immer gerne dazu ;-)

Gruß
kokisan2000


Angehängte Datei(en)
Sonstige .vi  IEEE4.vi (Größe: 22,91 KB / Downloads: 238)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.07.2006, 09:24
Beitrag #3

Bernhard_ Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Jul 2006

8.00
2006
kA


Deutschland
Datenstring in Fließkommazahl
Hallo kokisan2000,

vielen Dank für dein anschauliches Beispiel.
Aus dem String konnte ich ein Byte-Array und daraus eine 32-bit Integer machen und daraus mit "Zahl nach boolesches Array" ein Bitfeld. Und dieses Array wird dann in drei Stücke geteilt.
Aber es muss doch eine Möglichkeit geben, die ankommenden 4 Bytes abzulegen und als Float zu interpretieren.
Trotzdem nochmal dankeschön, jetzt habe ich zumindest mal eine funktionierende Lösung.

Viele Grüße,
Bernhard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenstring von Serieller Verbindung verarbeiten stefan1312 5 3.870 30.09.2019 14:53
Letzter Beitrag: stefan1312
  Flexible Präzision für Fließkommazahl in String umwandeln monoceros84 4 5.087 11.12.2014 15:04
Letzter Beitrag: monoceros84
  Datenstring Byte/Wordweise umdrehen LabviewRoland 5 5.391 18.10.2013 07:32
Letzter Beitrag: LabviewRoland
  String in Fließkommazahl umwandeln - Wie geht das? tnt 1 3.827 18.10.2007 20:42
Letzter Beitrag: tnt
  String-Darstellung einer Fließkommazahl SchwindelInside 7 6.326 30.10.2006 14:47
Letzter Beitrag: SchwindelInside
  String in Fließkommazahl umwandeln catha 2 4.992 26.10.2006 12:27
Letzter Beitrag: catha

Gehe zu: