有如下代码,判断代码功能
int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
举例验证按位与运算
3 0011
2 0010
4 0100
0 0000
5 0101
4 0100
6 0110
4 0100
观察可得通过此语句每次去掉了数字二进制写法中最右边的0,所以此程序的作用为计算x转换为二进制后其中有几个1