您的位置:首页 > 其它

如何判断一个数的二进制有多少个1

2017-08-09 16:26 239 查看
这里涉及一个&的知识点,&是按位与,就是在一位一位的做与运算,
while(n>0) //这一句,当n不等于0的时候循环执行以下循环体,n等于0的变化条件在n>>=1这一句,将n左移一位,这样当n中所有的"1"位都移出时,就跳出循环了
{
if((n&1)==1)  //这句逐个通过位与的方式查看当前n最左边的一位是不是1,若是,则n&1=1,c加1用来计数
c++;
n>>=1;
}
return c;//这样循环结束时就能得到所需的1的个数了
需要注意的是循环条件这部分很巧妙,保证当n的右边没有1的时候就不做循环了,可以假设n=1,循环体就只执行一次就跳出了,而不用遍历n的每一位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: