Given a decimal number, write a method that returns its binary representation (decimal to binary conversion).bitset<size> ConvertDecimalToBinary(int n)
{
bitset<size> ret;
bool neg = (n < 0) ? true : false;
n = abs(n);
int i = size - 1;
while (n > 0)
{
ret[i--] = (n % 2) ? 1 : 0;
n /= 2;
}
if (neg)
{
// Flip all the bits
for (int i = 0; i < size; i++)
ret[i] = ret[i] ^ true;
// Add 1
for (int i = size - 1; i >= 0; i--)
{
if (ret[i] == 0)
{
ret[i] = 1;
break;
}
ret[i] = 0;
}
}
return ret;
}
|