Bonjour,
Je sais que la question à été posée plein de fois mais je ne vois pas comment faire. Ma question est pour du C uniquement, je précise car dans d'autre langage on trouve pleins de fonctions
J'ai ce bout de code qui normalement fonctionne mais je n'arrive pas à l'adapter à mes besoins :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //XOR TEST char tab1[] = "01001110010100110110"; char tab2[] = "10110110011000110011"; // XORed = 11111000001100000101 char tab3[21]; int tailleTab1 = sizeof(tab1) -1; int tailleTab2 = sizeof(tab2) -1; int i; for (i=0; i< tailleTab1; i++){ tab3[i] = tab1[i]^tab2[i]; printf("%d", tab3[i]); }
Dans mon cas, je veux faire le Checksum de 4 char* contenant des 0 et des 1. Le premier char* fait 60bits, le deuxième 20 bits, le troisième 16 bits et le dernier 4 bits.
Je ne sais pas trop comment faire, j'ai essayé de mettre ce code dans une fonction (funXor()) avec en paramètre 2 de mes 4 char mais j'ai soit rien en sortie, soit des erreurs de compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //Xor Function char *funXor(char *tab1, char *tab2, int tail) { char tab3[tail]; int i; int tailleTab1 = sizeof(tab1) -1; for (i=0; i< tailleTab1; i++){ tab3[i] = tab1[i]^tab2[i]; //printf("%d", tab3[i]); } return tab3; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 char *xor0 = funXor(JK,JN3, 80); char *xor1 = funXor(xor0,JA3, 96); char *xor2 = funXor(xor1,JC3, 100); printf("xor2:%s/", xor2);
C'est si compliqué de faire le XOR de 4 char* contenant des bits? Je vous remercie de votre aide, je fait rarement du C d'où mon problème assez basique...
Sinon j'ai convertis ces 4 chars* en Hexadécimal pour faire un XOR mais je n'arrive pas non plus à faire quelque chose qui fonctionne...
Si vous avez une idée n'hésitez pas, je suis un peu perdu...
Partager