//a faster version of bitcount
//x &= (x-1) deletes the rightmost 1-bit in x
int bitcount(unsigned int x)
{
int b;
for (b = 0; x != 0; x &= (x-1))
if (x > 0)
b++;
return b;
}
一个非常快速的统计正数的二进制位为1的个数的方法。
x &= (x-1)每次都能将x的二进制的最右边的1删掉,因此比x>>=1高效很多。