#include <iostream>
#include <string>
using namespace std;
// function returns binary string... even with preceding zeros binary number is still correct.
string convertDecimalToBinary(int value);
int main()
{
int x = 0;
string s2("NEGATIVE NUMBER EXITING");
cout << "Enter a decimal number (max 524288): ";
cin >> x;
cout << endl;
if(convertDecimalToBinary(x) != s2)
{
cout << "The number in binary is: "
<< convertDecimalToBinary(x)<< endl; // call function...
}
else
{
cout << s2 << endl;
}
system("pause");
return 0;
}
string convertDecimalToBinary(int value)
{
const int AMOUNT = 20;
int one[AMOUNT];
int num_digits(0);
int iTemp(0);
string s2("NEGATIVE NUMBER EXITING");
iTemp = value;
if(iTemp < 0)
{
return s2;
}
while(iTemp > 0)
{
num_digits++;
iTemp /= 2;
}
for(int i = num_digits; i > 0; i--)
{
one[i] = value % 2;
value = value / 2;
}
string s1;
for (int i = 0; i <= num_digits; i++)
{
if (one[i] == 1)
{
s1.append("1");
}
else if (one[i] == 0)
{
s1.append("0");
}
}
return s1;
}