Bloomberg LP Interview Question
Financial Software DevelopersI can do it in less lines. The binary value is printed from less-significant digit to the most significant
void print_binary(unsigned int n) {
for(;n;n>>=1)
putchar(n&1?'1':'0');
}
right shift >> is implement dependent
One could use << instead
int mask = 1 << 31;
do
{
std::cout << ( (n&mask)?1:0 );
}while( n << 1);
Recursive Method--
static void binary(int _number)
{
int remainder;
if(_number <= 1)
Console.Write(_number);
if (_number != 1)
{
remainder = _number % 2;
binary(_number >> 1);
Console.Write(remainder);
}
}
public static String binaryRepresentation(int a){
StringBuilder output=new StringBuilder();
int bitChecker = 1;
for(int i=0;i<=31;i++){
output.append((a&bitChecker)>0?1:0);
bitChecker=bitChecker<<1;
}
return output.reverse().toString();
}
We can even use Integer.toBinaryString(a); directly if you would like to use in java
void print_binary(unsigned n) {
- shoushou January 24, 2009if(n)
{
print_binary(n >> 1);
cout << (n%2) ;
}
}