Ebay Interview Question
Analystsint countOnes(int x) {
int count = 0;
do count += x & 1; while (x >>= 1);
return count;
}
or:
int countOnes(int x) {
return (x & 1)
+ ((x & 2) == 2)
+ ((x & 4) == 4)
+ ((x & 8) == 8)
+ ((x & 16) == 16)
+ ((x & 32) == 32)
+ ((x & 64) == 64)
+ ((x & 128) == 128)
+ ((x & 256) == 256)
+ ((x & 512) == 512)
+ ((x & 1024) == 1024)
+ ((x & 2048) == 2048)
+ ((x & 4096) == 4096)
+ ((x & 8192) == 8192)
+ ((x & 16384) == 16384)
+ ((x & 32768) == 32768)
+ ((x & 65536) == 65536)
+ ((x & 131072) == 131072)
+ ((x & 262144) == 262144)
+ ((x & 524288) == 524288)
+ ((x & 1048576) == 1048576)
+ ((x & 2097152) == 2097152)
+ ((x & 4194304) == 4194304)
+ ((x & 8388608) == 8388608)
+ ((x & 16777216) == 16777216)
+ ((x & 33554432) == 33554432)
+ ((x & 67108864) == 67108864)
+ ((x & 134217728) == 134217728)
+ ((x & 268435456) == 268435456)
+ ((x & 536870912) == 536870912)
+ ((x & 1073741824) == 1073741824)
+ ((x & -2147483648) == -2147483648);
}
int bitcount (unsigned int n) {
- Addy July 20, 2009int count = 0 ;
while (n) {
count++ ;
n &= (n - 1) ;
}
return count ;
}