Binaire to decimal langage C

Résolu/Fermé
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 - 14 mars 2010 à 16:49
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 - 14 mars 2010 à 23:42
salut,
Est ce que qq'un peut m'aider à convertir ce programme en langage C de C++:

#include<iostream.h>
#include<conio.h>
#include<string.h>

main()
{
char rep;
int bin,c1,c2,c3,c4,c5,dec;
do{
clrscr();
cout<<"Entrer le nombre en binaire: ";
cin>>bin;

c1=bin / 10000;
c2=(bin % 10000) / 1000;
c3=(bin % 1000) / 100;
c4=(bin % 100) / 10;
c5=bin % 10;

dec=c5+c4*2+c3*4+c2*8+c1*16;

cout<<"Le décimale de ce nombre est = "<<dec;
cout<<"\n \n Autre conversion?(O/N) ";
cin>>rep;
}while(rep=='o' || rep=='O');
cout<<"\n \n **** Merci **** ";
}

merci d'avance.
A voir également:

5 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
14 mars 2010 à 16:53
Bonjour,
Poste ta solution qu'on puisse t'aider à corriger.
Ce n'est pas très dur, il suffit de remplacer les cout par des printf et les cin par des scanf (ou mieux getchar).
Le prototype de main sans argument est : int main(void).
Et n'oublie pas le return 0; final.
Bien sûr à la place de iostream.h, il te faudra mettre stdio.h
Cdlt,
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
14 mars 2010 à 18:23
printf("%d",&dec);
Ici tu affiches l'adresse mémoire de dec. Il faut mettre : printf("%d",dec);

return 0;
getch();

Ton getch() ne sert à rien puisqu'il est situé après le return 0.
Soit tu le mets avant (et ce n'est pas très portable), soit tu l'enlèves.

Cdlt,
1
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
14 mars 2010 à 23:42
Oui ça marche bien fiddy, merci bcp.
1
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
14 mars 2010 à 17:02
merci fiddy, j'ai essayé de faire la conversion, mais le programme apres l'execussion ne donne que des 0.000 comme resultat, voici le programme c que j'ai fais:

#include<stdio.h>
#include<conio.h>
#include<string.h>

int main(void)
{
char rep;
int bin,c1,c2,c3,c4,c5,dec;
do{
clrscr();
printf("Entrer le nombre en binaire: ");
scanf("%f",&bin);

c1=bin / 10000;
c2=(bin % 10000) / 1000;
c3=(bin % 1000) / 100;
c4=(bin % 100) / 10;
c5=bin % 10;

dec=c5+c4*2+c3*4+c2*8+c1*16;

printf("Le décimale de ce nombre est = ");
printf("%f",&dec);
printf("\n \n Autre conversion?(O/N) ");
scanf("%c",&rep);

}
while(rep=='o' || rep=='O');
printf("\n \n **** Merci **** ");
return 0;
getch();
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
amine_marc Messages postés 256 Date d'inscription dimanche 21 février 2010 Statut Membre Dernière intervention 11 avril 2016 2
14 mars 2010 à 17:38
j'ai fait encore autres modification, mais cette fois, il s'affiche 7234:
voici le code :

#include<stdio.h>
#include<conio.h>

int main()
{

int bin,c1,c2,c3,c4,c5,dec;

printf("Entrer le nombre en binaire: ");
scanf("%d",&bin);

c1=bin / 10000;
c2=(bin % 10000) / 1000;
c3=(bin % 1000) / 100;
c4=(bin % 100) / 10;
c5=bin % 10;

dec=c5+c4*2+c3*4+c2*8+c1*16;

printf("Le décimale de ce nombre est = ");
printf("%d",&dec);


return 0;
getch();
}
Est ce que vous pouurrez me dire la solution? Merci.
0