int count_bit_one(int n) { //int count_bit_one(unsigned int n){ int count = 0; /* while (n) { if (n % 2) { count++; } n = n / 2; }*/ int range = 8*sizeof (n); for (int i = 0; i < range; ++i) { if (n&1) { count++; } n=n>>i; } return count; }
补充算法:大佬教学
while (n) { n=n&(n-1); count++; }