C exposant qui foire ...
Résolu/Fermé4 réponses
Droopy_
Messages postés
248
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009
25
18 nov. 2008 à 19:46
18 nov. 2008 à 19:46
Whaou, c'est hyper compliqué. T'as vraiment besoin de tout ça ?
C'est une simple conversion d'entiers, je vois pas pourquoi ça doit passer par des float !!!
C'est une simple conversion d'entiers, je vois pas pourquoi ça doit passer par des float !!!
Droopy_
Messages postés
248
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009
25
18 nov. 2008 à 19:49
18 nov. 2008 à 19:49
Tu ne devrais utiliser que des int pour ça...
L'idée, au lieu de faire des puissances, c'est de diviser à chaque tour.
L'idée, au lieu de faire des puissances, c'est de diviser à chaque tour.
en faite j 'ai essayer avec un float mais avec des entiers l 'erreur est toujours la
Droopy_
Messages postés
248
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009
25
18 nov. 2008 à 19:56
18 nov. 2008 à 19:56
Voici l'algo, je te laisse le coder :-)
Quand on sort de la boucle, ndec contient ton nombre en décimal.
À noter : en C le modulo c'est l'opérateur %
N'oublie pas de vérifier que l'utilisateur ne rentre pas n'importe quoi.
Tu lis nbin (scanf) Tant que nbin > 0 chiffre = nbin modulo 10 ndec = (ndec * 2) + chiffre nbin = nbin / 10 Tant que fin
Quand on sort de la boucle, ndec contient ton nombre en décimal.
À noter : en C le modulo c'est l'opérateur %
N'oublie pas de vérifier que l'utilisateur ne rentre pas n'importe quoi.
Droopy_
Messages postés
248
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009
25
>
Droopy_
Messages postés
248
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009
18 nov. 2008 à 19:57
18 nov. 2008 à 19:57
Tu noteras que je n'ai pas de puissance, uniquement une division et son modulo.
vautour88
>
Droopy_
Messages postés
248
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
17 janvier 2009
18 nov. 2008 à 20:01
18 nov. 2008 à 20:01
MERCI ca marche
l erreur est toujours presente
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
int cpt, nb,nbb=0;
printf("entrez un nombre en binaire : ");
scanf("%d",&nb);
for(cpt=0;((nb/(pow(10,cpt)))>1) || ((nb/(pow(10,cpt)))==1);cpt++)
{
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
}
printf("\n %d egal en deci %d",nb,nbb);
getch();
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
int cpt, nb,nbb=0;
printf("entrez un nombre en binaire : ");
scanf("%d",&nb);
for(cpt=0;((nb/(pow(10,cpt)))>1) || ((nb/(pow(10,cpt)))==1);cpt++)
{
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
}
printf("\n %d egal en deci %d",nb,nbb);
getch();
}