01
2
3
4
5
6
7
8
9
10
int foo(x)
{
int count = 0;
while (x)
{
count++;
x = x & (x - 1);
}
return count;
}
求函数foo(2015)返回数值
答案:10
x = x & (x - 1);是一个很常见的表达式,功能就是将x二进制表示中的最后(最右边)的1变成0。
该函数的功能就是统计x二进制表示中1的个数。
2015=1024+512+256+128+64+16+8+4+2+1,因此有10个1.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。