A voir également:
- Conversion en C++ d'un nombre binaire en hexa
- Binaire - Guide
- Editeur hexa - Télécharger - Édition & Programmation
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Conversion mb en mo ✓ - Forum Matériel & Système
2 réponses
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
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
Pour mon programme TAILLE vaut toujours 26.
Sinon, je viens d'essayer ce que tu as marqué mais cela ne me donne pas le bon résultat.
De plus, je voudrais récupérer le résultat dans une variable.
et aussi petite précision :
dans mon tableau les deux premières case sont "isolé".
C'est a dire que :
tableau[0] et tableau[1] donneront un chiffre en hexa.
Par contre, le reste ne change pas (toujours ensuite 4 par 4 pour le codage en hexa)
Pour être plus précis, c'est comme si il fallait commencer à coder par la fin du tableau (tableau[25])
(désolé si je ne suis pas très claire)
Merci !
- il ne faut pas tenir compte de [0] et [1] ?
Au se situe le bit de poids fort: en début de tableau ou en fin de tableau? (si quand tu écris les nombres dans le tableau du genre [0]=a; [1]=b; [2]=c; es ce qu'en binaire tu dois avoir abc ou cba ???
alors :
j'ai un tableau comme ca (je ne marque que les indices)
" | " correspond en faite à comment effectuer le codage :
[0] [1] | [2] [3] [4] [5] | .... | [22] [23] [24] [25]
et je dois obtenir un nombre en hexa dans cette ordre la (a b c)
Par contre je viens de trouver comment calculer mais au final, ça m'affiche le nombre en décimal alors qu'il me le faut en hexa ...
et en plus le calcul est un peu trop long ...
si c'est avec le cout, il faut faire avec l'opérateur <<hex<<
un printf ça ne sert pas à afficher ?