XOR Checksum?

Sc0rP1En

Mitglied
Hallo Forum

Ich steh grad voll auf der Leitung.

Ich habe einen Hexstring "3F037F9E". Von diesem muss ich die XOR Checksum berechnen und dann hinten anhängen. Laut Vorgabe sollte hierbei "DD" herauskommen. Leider habe ich keine Ahnung davon.

Habe mich im Internet ein bisschen schlau gemacht und dann folgenden Code versucht:

Java:
		String hex = "3F037F9E";
		int cs = 0;
		
		byte[] array = hexStringToByteArray(hex);
		
		for(int i = 0;i<array.length;i++)
		{
			cs=cs^array[i];
		}
		
		System.out.println(cs);

Dabei wandle ich den Hexstring "hex" in ein byte[] "array" um. In der Forschleife greife ich auf alle Elemente des Arrays zu und XOR sie miteinander mit "^". Als Ergebnis bekomme ich aber -35 als Byte was in HEX aber "00 23" statt DD ist.

Was mache ich falsch?
Ich hoffe ihr könnt mir helfen. Danke schon im Voraus.

greets
Sc0rP1En
 
S

SlaterB

Gast
das Ziel ist:
den String in einzelne Bytes zerlegen, 3F, 03, 7F, 9E,
von diesen 4 bytes die 4 jeweils ersten Bits xoren, die zweiten Bits usw., ergibt 8 Kontrollbit, die zusammen sind ein byte, nämlich DD

The Magic of XOR
ab "Parity Check"

zu finden mit dem schweren Suchbegriff 'XOR Checksum'

edit:
ok, mit der Antwort von turtle wird ersichtlich dass es ja schon ziemlich weit hinkommt
 
Zuletzt bearbeitet von einem Moderator:

Sc0rP1En

Mitglied
Danke für eure schnellen Antworten. :)

Die Methode von Turtle funktioniert nur, wenn mit meiner Funktion ein negatives Ergebnis rauskommt.

Ich werde mal die Seite anschauen, die du mir verlinkt hast.
 

Sc0rP1En

Mitglied
So ich habe es jetzt mit meiner Methode + der von Hoax gemacht. Das Ergebnis, das bei mir herauskommt einfach mit Integer.toHexString(-35) verändern und am Ende mit Substring die letzten beiden Zeichen verwenden.

Danke für eure Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Checksum crc-16 Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben