Převod čísla z dvojkové do desítkové soustavy v C++
Myslím, že vím jak na to, mám jen problém, že potřebuji změnit ASCII adresu (místo zvýrazněno) na normální znak (např. 48 na 0) a nevím jak, i po přetypování (int(něco) atd.) mi to počítá pořád se 48kou místo 0 :D
Kód vypadá takhle:
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
int main(){
cout << "Zadejte cislo ve dvojkove soustave: " << endl;
char vstup[80];
cin >> vstup;//otocene bin. cislo
int i = 0;
int vypis = 0;
while(vstup[i] != '\0'){
if (vstup[i] == '0' || vstup[i] == '1' ){
vypis = vypis + vstup[i]*pow(2.0,i);
++i;
}else{
cout << "Nespravny vstup." << endl;
return 0;
}
}
cout << vypis << endl;
return 0;
}
P.s.: Viděl jsem, že převody mezi číselnými sous. jdou provádět i pomocí bitového posunu - mohlis byste mi někdo, prosím, vysvětlit jak?
Všem moc díky, už to mám :D