int func(x)
{
int countx = 0;
while(x)
{
countx++;
x = x&(x-1);
}
return countx;
}
x-1:最右边的一个1变成0了,该位后面的位有都从0变成1了,但和x与仍变成0了
因此每 x = x&(x-1); 一次, 1的数量就减少一次