Exercice corrigé en langage C++ :
Ecrire un programme qui convertit les nombres de la base binaire vers la base de 10 . le programme doit être comme ça :
1- Convertir un nombre de base 2 vers la base 10 .
2- Convertir un nombre de base 10 vers la base 2 .
Ecrire un programme qui convertit les nombres de la base binaire vers la base de 10 . le programme doit être comme ça :
1- Convertir un nombre de base 2 vers la base 10 .
2- Convertir un nombre de base 10 vers la base 2 .
3 - Quitter le programme .
Solution :
Solution :
#include<math.h>
#include<conio.h>
#include<iostream.h>
void converter_binary_to_decimal(long binary_1)
{
long binary_2;
int itoa[20],var_temp=0,decimal=0,i=0;
binary_2=binary_1;
while(binary_1>9)
{
itoa[var_temp]=binary_1%10;
binary_1=(int)binary_1/10;
var_temp++;
}
itoa[var_temp]=binary_1;
for(i=0;i<var_temp+1;i++)
decimal+=itoa[i]*pow(2,i);
cout<<"["<<binary_2<<"]2=["<<decimal<<"]10"<<endl;
}
void converter_decimal_to_binary(long N)
{
int i=0,binary[32];
long M=N;
for(;N>0;i++)
{binary[i]=(N%2==0) ? 0:1;N/=2;}
i--;
cout<<"["<<M<<"]10=[";
for(;i>=0;i--)
cout<<binary[i];
cout<<"]2"<<endl;
}
int main ()
{
long binary,n;
char choix;
system("color F9");
cout<<"\t\t*****************************************"<<endl;
cout<<"\t\t ********** binary-decimal *********"<<endl;
cout<<"\t\t*****************************************"<<endl;
debut:
cout<<"1-Pour convertir un nombre en base 2 vers la base 10."<<endl;
cout<<"2-Pour convertir un nombre en base 10 vers la base 2."<<endl;
printf("3-pour quitter le programme.\n");
cout<<"donnez votre choix:";
choix=getche();
switch(choix)
{
case'1':
{
cout<<endl<<"entrez un nombre en base 2 :";
cin>>binary;
if (cin.fail())
cout<<"erreur\a valeur incorrect"<<endl;
else
converter_binary_to_decimal(binary);
system("pause");
};break;
case'2':
{
cout<<endl<<"entrez un nombre en base 10:";
cin>>n;
if (cin.fail())
cout<<"erreur\a valeur incorrect"<<endl;
else
converter_decimal_to_binary(n);
system("pause");
};break;
case'3':system("exit");break;
default:{cout<<endl<<"\achoix incorrect"<<endl;goto debut;}
}
return 0;
}
0 commentaires:
Enregistrer un commentaire