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]); }
Partager