count number of bits set in a number
int count_one (int n) { while( n ) { n = n&(n-1); count++; } return count; }
Source: www.hackerearth.com
count total bits in a number
unsigned int num_ones(unsigned int n) { unsigned int num = 0; while(n) { num += (n&1); n >>= 1; } return num; }