Nabla's
18195Messages postés
4 juin 2008Date d'inscription
29 août 2011Dernière intervention
20 avril 2009 à 11:30
je considère que la première case correspond au LSB(bit de poids faible)
alors, ,tu as
#define TAILLE 26
int tableau [TAILLE ]={.....};//déclaration de ton tableau (int*), et le remplissage des valeurs .....
on va faire:
unsigned long resultat=0; //le résultat est pour l'instant à 0
int i;
for (i=0;i<TAILLE;i++) //on parcours tout le tableau
resultat+=(tableau[i]<<i); //on ajoute au résultat chaque bit (case du tableau) en le déplaçant vers la gauche du nombre de cases correspondant...
printf("le résultat est %d", resultat);
tiens moi au courant si ça marche, ou si ton ordre est MSB en premier ;)
edit: le type LONG est codé sur 4 octets, ce qui te donne 32 bits-> TAILLE doit etre inférieur ou égal à 32
un printf ça ne sert pas à afficher ?
dans le code que je t'ai filé, la variable "résultat" contient le résultat...
tu epux aussi faire un sprintf pour stocker le résultat sous la forme d'une chaine de caractères, qui aura elle la notation en hexadécimale, si tu le souhaite