Given a real number between 0 and 1 (e.g., 0.72) that is passed in as a double, print the binary representation. If the number cannot be represented accurately in binary with less than 32 characters, print “ERROR.”
#include <iostream>
using namespace std;
string printFloatingBinary(double num)
{
if(num >=1 || num <= 0)
return "ERROR. (RANGE ERROR)";
string floatingBinary = "";
floatingBinary.append("0.");
while(num >= 0)
{
if(floatingBinary.length() >= 32)
{
floatingBinary = "ERROR. (" + floatingBinary + ")";
break;
}
int intPart;
double floatingPart;
intPart = num * 2;
floatingPart = (num * 2) - intPart;
floatingBinary += (char)intPart + '0';
num = floatingPart;
}
return floatingBinary;
}
int main(int argc, const char * argv[])
{
cout<<printFloatingBinary(0.12566)<<endl;
return 0;
}