Fonction pour ranger un tableau en C

Fermé
xtimas - 21 juin 2010 à 12:15
 xtimas - 21 juin 2010 à 12:53
Bonjour,


je débute en langage C , et je veux définir une fonction qui prend les 16 valeurs en hexa d'un tableau et les range 4 à 4 dans un autres tableau de façon a ce que la valeur de poids fort devient celle de poids faible et vis vers ça ..
par exemple:

tableau1:
tab1[16]= {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
tableau 2:
tab2[4]=
{0x33221100, 0x77665544, 0xbbaa9988, 0xffeeddcc};

pouvez vous m'aider svp?
merci d'avance
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 juin 2010 à 12:24
Bonjour,
Tu fais une boucle for qui incrémente de 4.
Ensuite, dans chaque itération, tu fais des décalages comme il faut (>>).

Je te laisse faire le début de la fonction, pour te corriger si besoin.
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 692
21 juin 2010 à 12:33
Bonjour,

Essai ça, je n'ai pas de compilateur C pour tester, mais cela doit être très proche de ça...


     int tab[16]=................;
     int tab2[4];
     int inc;
     int inc2 = 0;

     
     for(inc=0;inc<16;inc=inc+4)
    {     
         tab2[inc2]=tab[inc+3]*0x1000000+tab[inc+2]*0x10000+tab[inc+1]*0x100+tab[inc]; 
     inc2++;
    }
}

0
merciiiii,

j'ai essayé et ça marche bien
#include <stdio.h>
#include <conio.h>

int main()
{
int tab1[16]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
int tab2[4];
int inc;
int inc2 = 0;


for(inc=0;inc<16;inc=inc+4)
{
tab2[inc2]=tab1[inc+3]*0x1000000+tab1[inc+2]*0x10000+tab1[inc+1]*0x100+tab1[inc];
inc2++;
}
printf("\n tab1 est:%.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX %.2lX",
tab1[0], tab1[1], tab1[2], tab1[3],tab1[4], tab1[5], tab1[6], tab1[7],
tab1[8], tab1[9], tab1[10], tab1[11],tab1[12], tab1[13], tab1[14], tab1[15]);
printf("\n tab2 est:%.8lX %.8lX %.8lX %.8lX ",tab2[0], tab2[1],tab2[2], tab2[3]);
getch();

}

encore merci :)
0