trouver un chiffre entier en base 16
Bonjour à tous.
Je dois créer un code pour trouver la valeur d'un entier en base16
dans l'immédiat pour y arriver je pars sur l'exemple de mon exercice.
Avec le chiffre 13, je dois obtenir 1101 ------>(13)10=(1101)2
donc je fais un simple code juste pour déjà faire correctement mes division :
Code:
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
|
#include <stdio.h>
int main(void)
{
int base=13;
int reste;
int modulo;
reste=base/2;
modulo=base%2;
printf("le reste est %d\n",reste);
printf("le modulo est %d\n",modulo);
do
{
reste=reste/2;
modulo=reste%2;
printf("le reste est %d\n",reste);
printf("le modulo est %d\n",modulo);
} while (reste =0);
printf("le reste est %d\n",reste);
printf("le modulo est %d\n",modulo);
return 0;
} |
ceci me donne
le reste est 6
le modulo est 1
le reste est 3
le modulo est 1
le reste est 0
le modulo est 1
et je cherche à obtenir
le reste est 6
le modulo est 1
le reste est 3
le modulo est 0
le reste est 1
le modulo est 1
le reste est 0
quel est mon erreur ?
trouver un chiffre en base 2
Bonjour,
Je trouve que l'affichage du reste dans ton calcule porte a confusion, tu ne devrait afficher que le nombre qui t’intéresse soit le modulo pendant ton calcule.
ensuite, comme l'a dit dinobogan, ton calcule modulo/reste est inversé.
Ta condition de sorti devrait être
Code:
while (reste>(base-1))
tant que ton reste est supérieure au dernier nombre admissible par ta base soit N-1.
A la sortie de ta boucle, tu affiche le reste qui peut être pertinent.
Après libre a toi d'afficher tout les reste au fur et a mesure.
Attention a ton titre, trouver un chiffre en base 16, tu converti en base 2.