Fonction pour ranger un tableau en C

xtimas -  
 xtimas -
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

3 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  2. Neliel Messages postés 7012 Statut Contributeur 1 702
     
    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
  3. xtimas
     
    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