richtig casten!
-
Kopf->Tisch. Typ war schon richtig, nur die Stelle nicht-
-
Aso!
naja so:data[0][i] = data[0][i] ^ (int) hex;
funktionierts auch net!
mfg
-
Janjan schrieb:
Typ war schon richtig, nur die Stelle nicht-
Weißt du überhaupt was xor macht? Es macht keinen Sinn, dass hex größer ist als der zu "verschlüsselnde" Typ. Caste hex einfach nach char, das macht weniger ärger.
-
Ja ich weiß schon was xor macht nur hab ich ständig dieses problem und komme leider nicht auf eine Lösung!
Ja stimmt des wär a blödsinn!
mfg
-
data[0][i] ^= hex & 0xff; // !
-
otto8 schrieb:
data[0][i] ^= hex & 0xff; // !
Wtf? Wozu das & 0xff? Sind wir wieder im Rate-Club unterwegs?
-
Hallo!
danke für die Info aber hex ist nicht das problem!
erst nach der ^-verküpfung erhalte ich diesen wert!
Ich habe auch schon probiert, nach der ^-verknüpfung mein data mit 0xff zu verknüpfen(mit &) leider ohne erfolg!
mfg
-
data[o][i] ^= (char)hex;
-
Warum raten! mit 0xff könnte man theoretisch ja die erste 6 bytes löschen!
data[o][i] ^= (char)hex;
hab i schon probiert und funzt net!
aber trotzdem danke!
mfg
-
Dann hast DU schlichtweg einen Denkfehler.
Nochmal: Weißt du überhaupt was xor macht?
-
Ich rate auch mal:
data[0][i] = (unsigned char)data[0][i] ^ hex;
-
Ja bei der xor verknüpfung werden die bits miteinander verknüpft und bei 0^0 =0;
1^0=1; 0^1 =1 und 1^1 =0.
Stimmt doch oder?
mfg
-
Zeig uns ein [/b]kleines[b] komplettes Programm, das Deinen Fehler erzeugt.
-
Ich muss leider weg!
werds am abend reinstellen!
Is aber eigentlich a größeres programm!
mfg
-
rene_ob schrieb:
Es steht dann om ergebnis statt: zB.: aa steht ffffffaa! So nun weiß ich, dass mein array ein char typ ist und mein hexWert ein int.
Nimm unsigned char.
-
Vllt. noch das eine oder andere Wort zu deinem Titel - du brauchst nichts zu casten:
Das ffffffaa erscheint nur in der hexadezimalen Anzeige und weil es in einen char nicht reinpasst, steht dort nur aa drin.
Darum ist es auch egal, wie groß dein 'hexWert' ist, denn es wird nur das niederwertigste Byte als Ergebnis der XOR Verknüpfung in deinem char gespeichert.
Die ganzen ffffff scheinen dich zu irritieren, das ist nur die Eigenschaft, wie negative Zahlen im Zweierkomplement dargestellt werden, guckst du:char c = -1; printf ( "%x\n", c ); c = -2; printf ( "%x\n", c ); c = -3; printf ( "%x\n", c ); // usw.
-
Ok super vielen danke!
mfg