您的位置:首页 > 其它

一个非常有用的算法---统计二进制数中1的个数

2015-06-28 09:44 295 查看
本人算法小菜,看见一个非常好的算法,统计一个数的二进制数的1的个数。觉得不错,与大家分享。

int fun(int x){
int count = 0;
while(x){
count++;
x = x &(x-1)
}
return count;
}


  下面是个人的一点解释(欢迎拍砖)

  比如一个数x的二进制后面几位是1000.

x-1的二进制后面几位变成了 0111.

二者&,变成了 0000

而对于原数x的二进制数而言,就从右端减少了一个1。所以上述算法是计算二进制1的个数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: