您的位置:首页 > 其它

怎么获取一个数字中的1的个数

2016-12-03 11:23 267 查看
最近在网上看到一个获取数字中1的个数的算法,感觉很有用,就记录下来:


/*
基本思路:
从低位往高位计数,利用逻辑与&特征,相同为0,不同为1,
将 i 与 i - 1进行 & 运算,这样每次可以计算一个低位,同时有往高位递归
*/
int get_number_1_count(int i)
{
int count = 0;

while(i)
{
//i 不为0,说明有1,计数++
++count;

//重置低位为0, 得到高位
i = i & (i - 1);
}

return count;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法
相关文章推荐