您的位置:首页 > 其它

判断任意整数的二进制位中有多少个1

2014-08-11 11:39 183 查看
int func(int x)
{
int cnt = 0;

while(x)
{
x = x & ( x - 1 );
cnt++;
}
return cnt;
}
该方法的时间复杂度是O(m)。

x=x&(x-1)还可以快速判断x是不是2^n。当x为unsigned类型的变量,且其值为2的n次幂的时候,结果为零。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐