0

Assignment:
Write a function zet_om_naar_getal(getal) that calculates the binary representation from a decimal number as a string, using recursion.

What I have so far:

string zet_om_naar_binair(double getal)
{
    string binair;

    if(getal >= 1)
    {
        binair += '0' + static_cast<int>(getal)%2;
        binair += zet_om_naar_binair(getal/2);
    }
    else if(getal > 0)
    {
        double dubbel = 2*getal;
        binair += '0' + static_cast<int>(dubbel)%2;
        binair += zet_om_naar_binair(dubbel - static_cast<int>(dubbel));
    }

    return binair;
}

Don't mind the weird names, they're in Dutch.

So far, it translates the number correctly in 2 parts, before the digit, and after. However, the part before the digit is reversed, so I'd have to flip it around, and add a '.'.
In the case where the number is smaller than 1, I'd have to add "0." in front...
I have no clue of how going about either of them.. I can't think of a good place to put it in because it's recursive.

Thanks for any ideas!

2
Contributors
1
Reply
3
Views
7 Years
Discussion Span
Last Post by thines01
-1
string dec2bin2(int intNum)
{	//2147483648 = INT_MAX
	string strRetVal = "";
	int intTemp = intNum;
	
	for(unsigned long ulngLoop = ((unsigned long)1+INT_MAX); ulngLoop > 0; (ulngLoop/=2))
	{
		if((unsigned)intTemp >= ulngLoop)
		{
			strRetVal += "1";
			intTemp -= ulngLoop;
		}
		else
		{
			strRetVal += "0";
		}
	}
	
	return strRetVal;
}
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.