Bonjour tous
j'ai débuté en C y'a quelques jours, bref j'ai fais une fonction qui range 4 à 4 les élémnents d'un tableau à 16 octets de la façon suivante:
tab1[16]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
tab2[4]= {0x33221100, 0x77665544, 0xbbaa9988, 0xffeeddcc};
j'ai fais la fonction suivante:
maintenant je cherche a faire le travail inversement c'est à dire passer du tab2 vers le tab1, j'ai esayé ce morceau de code pour une seule valeur du tab2:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void range(unsigned int *tab1, unsigned int *tab2) { int n; int m=0; for (n = 0; n < 16 ; n=n+4) { tab2[m]= tab1[n+3]*0x1000000+tab1[n+2]*0x10000+tab1[n+1]*0x100+tab1[n]; m++; } }
ça marche mais c'est long et compliqué et puis j'arrive pas à l'intégrer dans une boucle,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 unsigned int dr = tab2[0] / 0x1000000; unsigned int ds = ((tab2[0] % 0x1000000) / 0x10000) ; unsigned int dv = (((tab2[0] % 0x1000000) % 0x10000) / 0x100) ; unsigned int dx = (((tab2[0] % 0x1000000) % 0x10000) % 0x100) ;
avez vous une idée de fonction pour reconstruire tab1 à partir de tab2 ??
merci d'avance![]()
Partager