Bonjour,

je suis ultra débutante en C, et je bloque sur un problème de conversion, voila : j'ai plusieurs variables en hexa du style "efcdab89" que je voudrais convertir en binaire (32 bits a stockés dans un int A[32] à l'aide d'une boucle for).
J'ai essayé d'utiliser une fonction qui marche très bien pour transformer un caractère en 8 bits, je l'ai bidouillé un peu mais bien que cela me donne au final 32 bits ce ne sont pas les bons!!
merci de votre aide, voici mon code :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
int POW(int base, int power)
{
     if (power)
     {
          int exp = base;
          while (--power > 0) exp *= base;
          return exp;
     }
     else return 1;
}
 
void ATOBLONG(int a,int* dest)
{     
       int power = 0, rem = a, i;
       for (i = 0; i<32;i++)
       {
          power = POW(2,31-i);
          *dest = rem / power; dest++;
          rem %= power;
       }
}
 
int H0 = 0xefcdab89;
int A[32];
 
    ATOBLONG(H0, A);
    for (j=0; j<32; j++)
    {
       printf("%i", A[j]);
     }