LabVIEWForum.de - Aus Hexzahlen summe bilden?

LabVIEWForum.de

Normale Version: Aus Hexzahlen summe bilden?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo

Habe ein kleines Problem! Möchte die Summe aus zwei Hex-Strings bilden! Gibt es dafür eine passende Funktion?
Hi,

ich würde es kurz in eine Zahl wandeln, addieren und das Ergebnis zurückwandeln...HexString to Number - Addition - Number to HexString (Palette Strings >> String/Number Conversion)

Gruss
Achim
Danke für deine Antwort. Muss vieleicht noch sagen will HEX Werte mit dem VISA übertragen und da werden die HEX zahlen in einen ASCII String umgewandelt! Wie kann man von ASCII oder HEX in eine Dezimal zahl wandeln?
' schrieb:Danke für deine Antwort. Muss vieleicht noch sagen will HEX Werte mit dem VISA übertragen und da werden die HEX zahlen in einen ASCII String umgewandelt! Wie kann man von ASCII oder HEX in eine Dezimal zahl wandeln?


Die gleiche Palette nur halt anders rum. Number to HEX String.

Gruss
Hallo

Habe wie von euch erklärt probiert funktioniert aber irgenwie nicht! Kann mir jemand sagen was ich falsch mache?
Hi,

mach mal nen rechtsklick aufs Control und sag "Normal Display"...du darfst hier nicht Hex auswählen! Das ist nur die DARSTELLUNG des Zeichens in ASCII-Code! Du willst aber nen String der schon HEX ist umwandeln! Aus Normal-Display "A" wird "10". Aus HEX-Display "41" (=ASCII) wird auch wieder "10"

Gruss
Achim
Möchte dan die addierten Hexzahlen über rs232 schicken und da brauche ich die daten doch in Hex? Ich meine wenn ich in meinem control auf "normal Display" habe und die daten dan üer rs232 schicken will erkennt er diese nicht! Da muss ich das control doch auf "HEX" stellen?

Habe mein VI noch angepasst!
Nein, musst du nicht! Bringt auch nichts! Wie gesagt, das ist nur ne Darstellung im Control..das könntest du auch im oktalen Format machen...

Also nochmal:

Du kriegst einen String, der ist ein HEX-Wert...also z.B. kriegst du "0x0A" oder auch nur "0A", das ist die Dezimal-Zahl mit dem Wert "10", EDIT: Zeichen "A" = ASCII "41"
Du wandelst diesen String mit "Hex-String to Number", dann hast du die Dezimalzahl. Mit sich selbst addiert kommt "20" (dez) raus, in Hex "14". Diese "0x14" sind in ASCII (also Hex-Display) dargestellt als "3134": "31" bedeutet Zeichen "1", "34" bedeutet Zeichen "4"

Siehe Bild!

[attachment=5519]

Wenn dein Gerät die Zeichen nicht erkennt, liegt irgendwo anders ein Fehler...evtl. machst du noch nen Fehler bei ner anderen Wandlung oder du schickst "0A", erwartet wird aber "0x0A" oder oder oder...

Gruss
Achim

EDIT: Hab nur LV8.0, kann dein angepasstes VI nicht öffnen...
Vielen dank für deine Antwort habe es nun hinbekommen! Danke!!

Hier hast du mein Fertiges VI!! Was meinst du zu dieser Lösung! Und die Checksumme habe ich absichtlich gedreht!
Hi,

ich habs nur kurz überflogen...versteh nicht so recht, was du machst...aber ich hab ne generelle Frage: Wie sieht der String (in Normaldarstellung) aus, den du vom "seriellen-lesen-VI" kriegst? "FF9F 0000 0000" oder "4646 3946 2030 3030 3020 3030 3030". Das ist beides das "gleiche", das erste ist jedoch ein Hex-Zahlenwert, das zweite ist der ASCII-Code der einzelnen Zeichen in Hex-Darstellung ("46" entspricht dem Zeichen "F"). Werden also Zahlenwerte empfangen oder werden Zeichen empfangen, die erst in Zahlenwerte gewandelt werden müssen? Bei letzterem würde ich verstehen, warum du das "Command" in Hexdarstellung verwendest...

Schau mal mein Beispiel an:

[attachment=5527]

Gruss
Achim
Seiten: 1 2
Referenz-URLs