XOR mit Einzelnen String inhalten im Hex Format

Bennyaa

Lieutenant
Registriert
März 2007
Beiträge
832
Hallo, ich möchte von einem Datenstring eine Checksumme bilden.

Jetzt habe ich bspw. einen Wert 55 (Dezimal), dieser entspricht ja dem Hexwert 37.
Wenn ich 37 im String an die RS232 Schnittstelle sende, wird auch wie erwartet 33 37 gesendet.

Soweit so gut. Ich muss nun noch eine checksumme erzeugen. Diese wird aus dem XOR der Daten gebildet.
Ich muss jetzt allerding das XOR nicht aus der 3 und der 7 bilden, sondern aus der 33 und der 37.
Aber wie bekomme ich aus dem String "37" zwei hexwerte mit 33 und 37 und daraus ein Hexadezimales Ergebnis?

Danke für jede Hilfe
Ergänzung ()

Also hier ein Beispiel, was es vielleicht etwas verdeutlicht.
Ich habe einen String, welcher gesendet wird: "C140002|"
Diesen müsste ich jetzt Zeichenweise umwandeln, damit ich folgende erhalte: 43 31 34 30 30 30 32 05
Diese 8 Hexwerte müsste ich miteinander XOR verknüpfen. Aber wie bekomme ich jetzt bspw. das "C" in eine 43 umgewandelt und die 1 in eine 31, damit ich diese verknüpfen kann?
 
Oh, danke für den Hinweis ;-)
Naja habe bissi rum probiert und so bekommt man schon mal den Hexwert: Wert1 = Hex$(Asc(Left(Datablock, 1)))
Leider funktioniert das XOR wohl nicht über die Hexzahl
bekomme bei den Hexwerten "7F" also: 37 XOR 46 = 11 raus, das ist aber die flasche rechenweisen, diese rechnet dezimal.
ich müsste eigentlich hier 71 raus bekommen.
Ergänzung ()

Habe die Lösung, man darf einfach die Zahl vorher nur in ASCII DEC umwandeln und nicht in HEX:

Datablock = Data
Wert1 = Asc(Left(Datablock, 1))
Datablock = Right(Data, Len(Data) - 1)
Wert2 = Asc(Left(Datablock, 1))
GenerateChecksumm = Hex$(Wert1 Xor Wert2)
 
Zurück
Oben