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 

Über Serielle RS232 gelesenen String zu Zahl wandeln



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!

03.11.2005, 23:41
Beitrag #7

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 430
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
Über Serielle RS232 gelesenen String zu Zahl wandeln
Mr.T schrieb:Jetzt habe ich mir da mal was übles zusammengebastelt, was funktioniert.
ACK
Zitat:Das kann aber nicht wirklich der gesunde Weg sein, oder?
Korrekt - das nicht ganz optimal.
Zitat:Aber das mit Hex-String zu Zahl funzt einfach net.

Was mache ich denn falsch?
Nicht so viel... Nur dass Hex-String zu Zahl in deinem Fall nicht funktioniert - nicht funktionieren kann.

Das hatten wir hier schon öfter und es wird auch nicht das letzte mal sein, dass es Verwechslungen und Missverständnisse gibt zwischen der Darstellung mittels druckbarer ASCII Zeichen, der Zahl selbst und der Abbildung der Zahl im Speicher. Falls es einmal nicht zu Missverständnissen kommen würde, dann sorgen Big- und Little-Endian ggf. dafür, dass wieder etwas nicht so ist, wie es erwartet wurde.

Eine Zahl, wie in deinem Beispiel Dezimal 55936 oder Hex 0xDA80 kann mittels zweier Bytes gespeichert werden. Bei Big-Endian wird das höherwertige Byte zuerst gespeichert 0xDA gefolgt von 0x80. Bei Little-Endian wird das niederwertige Byte zuerst gespeichert 0x80 gefolgt von 0xDA.

Wird die Zahl lesbar dargestellt, dann erfolgt diese Darstellung mittels druckbarer ASCII Zeichen als "DA80" (im Speicher stehen die Bytes 0x44 0x41 0x38 0x30). Nur diese Form der Darstellung kann z.B. mittels der Funktion "Hexadecimal String to Number" in einen Integer umgewandelt werden.

In deinem Fall kommt die Zahl so wie sie ist und zu meiner Freude auch im Big-Endian Format. Die Umwandlung geht ganz einfach mittels "Type Cast" (Palette Advanced, Data Manipulation) in einen U16 (unsigned 16 Bit Integer).

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Über Serielle RS232 gelesenen String zu Zahl wandeln - Martin.Henz - 03.11.2005 23:41

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Servomex Messwerte auslesen über RS232/RS485 Chefkoch 6 9.689 18.07.2016 13:54
Letzter Beitrag: jg
  problem mit LF (0x0A) über RS232 klaus_at 7 6.735 20.11.2013 13:34
Letzter Beitrag: klaus_at
  Labview-Kommunikation mit Jumo über RS232 redhand 35 36.124 28.10.2013 09:45
Letzter Beitrag: GerdW
  Keithley K2000 über RS232 auslesen Alpenpower 6 14.418 09.09.2013 07:55
Letzter Beitrag: GerdW
  Kraftprüfmaschine von Zick/Roell über RS232 steuern 1johleh 24 35.256 20.12.2012 19:31
Letzter Beitrag: Tobi2012
  Keine Daten kommen an vom Hameg 8115 über VISA RS232 USB fsg4u 3 6.103 09.08.2012 14:33
Letzter Beitrag: fsg4u

Gehe zu: