您的位置:首页 > 其它

整数的二进制表示中1的个数

2015-12-14 16:26 330 查看
int getNumOf1(int n) //方法1
{
int res = 0;
bool flag = true;
if(n < 0)
{
flag = false;
n = -n - 1;
}
while(n)
{
res += n % 2;
n /= 2;
}
if(!flag)
{
res = 32 - res;
}

return res;
}

int fun(int n) // 方法2
{
int res = 0;
while(n)
{
n &= n - 1;
res++;
}

return res;
}

int main()
{
int n;
while(cin>>n)
{
cout<<getNumOf1(n)<<endl;
cout<<fun(n)<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  与位运算