Salve a tutti, oggi ho provato a realizzare un convertitore da binario a decimale e da decimale a binario in questo modo:
codice:
//Convertire un numero binario in decimale, e da decimale a binario.
#include<iostream>
#include<math.h>
#define N 8
using namespace std;
int mypow(int x,int y){
int pot=1, c=0;
do{
pot=pot*x;
c=c+1;
}while(c<y);
}
int bindec(char str[]){
int somma=0;
int l;
int pot;
for(l=0; str[l]!='\0'; l++) //calcolo la lunghezza della stringa
;
int esponente=l-1;
for(int i=0; i<l; i++){
pot=pow(2,esponente);
somma=somma+(str[i]*pot);
esponente--;
}
return somma;
}
void decbin(int dec){
char str[8];
int i=0;
do{
str[i]=dec%2;
i++;
dec=dec/2;
}while(dec>=0);
int l;
for(l=0; l!='\0'; l++)//calcolo la lunghezza della stringa
;
for(int k=l-1; k>=0; k--)
cout<<str[k];
}
int main(){
char bin[N];
int decimale;
int n;
int binario;
cout<<"Inserisci il numero binario che vuoi convertire: ";
cin>>bin;
decimale=bindec(bin);
cout<<"Il numero decimale e': "<<decimale<<" ";
cout<<"Inserisci il numero decimale che vuoi convertire in binario ";
cin>>n;
decbin(n);
}
Però c'è qualcosa che non torna, potreste aiutarmi ad individuare l'errore?