Ktoś mógł by mi wyjaśnić ten kod najlepiej co się dzieje w każdej linijce kodu
#include <iostream>
#include <sstream>
#include <cmath>
#include <string>
#include <cstdlib>
using namespace std;
string toBinary(int n)
{
string r;
while(n!=0)
{
r=(n%2==0 ?"0":"1")+r; n/=2;
}
return r;
}
int convertBinaryToDecimal(int n)
{
int decimalNumber = 0, i = 0, remainder;
while (n!=0)
{
remainder = n%10;
n /= 10;
decimalNumber += remainder*pow(2,i);
++i;
}
return decimalNumber;
}
int main(int argc, char** argv)
{
cout << "Konwersja" << endl << "hex dec oct bin" << endl;
string type = "", source;
int res;
bool done;
while (!done)
{
cin >> source >> type;
done = true;
if(type == "hex")
istringstream(source) >> hex >> res;
else if(type == "dec")
istringstream(source) >> dec >> res;
else if(type == "oct")
istringstream(source) >> oct >> res;
else if (type == "bin")
{
res = convertBinaryToDecimal(atoi(source.c_str()));
}
else
{
cout << "Nierozpoznano symbolu\n";
done = false;
}
}
cout << endl << "dziesietnie: " << dec << res << endl;
cout << "heksadecymalnie: " << hex << res << endl;
cout << "oktalnie: " << oct << res << endl;
cout << "binarnie: " << toBinary(res);
return 0;
}