6 stelligen Hex-String in Zahl konvertieren - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: 6 stelligen Hex-String in Zahl konvertieren (/Thread-6-stelligen-Hex-String-in-Zahl-konvertieren) |
6 stelligen Hex-String in Zahl konvertieren - anhd - 08.05.2006 15:32 Hallo zusammen, ich hab folgendes Problem bei der Konvertierung eines 6 stelligen Hex-Strings in eine Zahl: Meine Schrittmotorsteuerung liefert mir die aktuelle Position für jede Achse in Form eines 6 stelligen Hex-Strings (= 3 Byte), welcher in 2er Komplementdarstellung formatiert ist. D.h. ich erhalte z.B. den String FFFF9C, welcher -100 darstellen soll. Das "Hex-String nach Zahl" Vi interpretiert diesen String jedoch als 4 Byte und liefert somit einen hohen positiven Wert, anstatt der -100. Ich bin jetzt ziemlich ratlos wie das zu lösen ist O_o Hoffentlich weis von euch jmd weiter (: mfg Andreas 6 stelligen Hex-String in Zahl konvertieren - oppossom - 08.05.2006 16:08 Hab schnell was gebastelt... Kann durchaus sein, dass es da einen eleganteren Weg gibt, aber so funktioniert es zumindest mal Lg Stefan 6 stelligen Hex-String in Zahl konvertieren - Lucki - 08.05.2006 19:03 Oder so.. 6 stelligen Hex-String in Zahl konvertieren - anhd - 09.05.2006 10:33 Hallo, vielen Dank euch beiden für die schnelle Antwort. Als ich die beiden Antworten heute morgen gelesen hab, war mit Lucki´s Variante direkt symphatisch. Bei näherem hinsehen wurde jedoch klar, dass die Sache zwar für das von mir gegebene beispiel FFFF9C den richtigen Werte liefert, jedoch nicht für größere negative Zahlen, wie z.B. 80 00 00. Grundhierfür ist wohl der Typecast auf 16bit Int - der Zahlenbereich muss jedoch mindestens 24 Bit umfassen. Die Variante von oppossom lieferte jedoch das gleiche, falsche ergebnis. Ich konnte es jedoch so umbauen dass es jetzt funktioniert. Danke (Ich musste das Bool-Array zunächst auf 24 Werte kürzen, und dann vor dem x*2^n vi einen Typecast auf 32 bit einfügen, weil die Bool zu 0,1 Funktion einen 16 Bit Int liefert und das x*2^n VI dann ebenfalls auf 16 Bit beschränkt war) Das geänderte VI gibts im Anhang Gruß und Dank Andreas 6 stelligen Hex-String in Zahl konvertieren - Lucki - 09.05.2006 11:28 Ja, ich hatte nicht beachtet, daß es sich bei deinem 24 Bit Integer um ein Format handelt, welches es in LabVIEW gar nicht gibt. Also hier die korrigierte Fassung: (Erläuterung: Wenn das MSB =1 ist, dann ist die Zahl negativ. Damit das MSB der 24bit-Zahl zum MSB einer 32bit-Zahl wird, multipliziere ich mit 256 und konvertiere von U32 nach I32. Dann mache ich die Multipklikation wieder rückkgängig) 6 stelligen Hex-String in Zahl konvertieren - anhd - 09.05.2006 12:37 hmm, erstaunlich (: Das is ja nochmal ein gutes Stück kürzer, werd mir das nachher nochmal anguggen. Thx. |