Fonction pour ranger un tableau en C

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. Contributeur
    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
    1. Contributeur
      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
      1. 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