salve a tutti. ho provato a compilare un programma in c++ (ambiente dev/c++) che dato un numero binario o decimale lo converte nella base decimale o binaria. ecco il sorgente:
#include <iostream>
int main()
{
int scelta;
unsigned int n ;
unsigned int m ;
unsigned int dim = 8 * sizeof(unsigned int) - 1 ;
cout<<" scegliere il tipo di operazione da effettuare:"<<endl;
cout<<" 1 convertire il numero dato in notazione binaria: \n";
cout<<" 2 convertire il numero binario dato in notazione decimale: \n";
cin>>scelta;
if (scelta ==1){
cout<<"Inserire il numero decimale " ;
cin>>n ;
while ( dim > 0 && (n >> dim) == 0)
dim-- ;
cout<<"La rappresentazione del numero "<<n<<" in base binaria e'\n" ;
for (int i = dim ; i >= 0 ; i--)
cout<<((n>>i)&1) ;
}
else {
int i=0,bin=0;
char c[20];
cout<<"Inserire il numero binario " ;
scanf("%s",c);
while (c[i]!=0)
{
m=c[i]-'0';
bin+=m;
bin*=2;
i++;
}
bin/=2;
cout<<"Il corrispondente decimale e':"<< bin <<'\n';
}
cout<<endl;
system("pause");
return 0;
}
come vedete mi sono appoggiato al c nella parte del programma che converte il valore binario in decimale.
perchè? perchè non mi veniva in mente nulla!
che ci posso mettere al posto di scanf("%s",c)?
grazie.