#include <iostream>
// 这个只能求正整数的0的个数
int ZeroN(int n)
{
int count = 0;
while(n > 1)
{
if(0 == n%2)
count++;
n >>= 1;
}
return count;
}
// 可正可负,注意,负数是用补码存的
int OneN(int n)
{
int count = 0;
while(n)
{
count++;
n &= n-1;
}
return count;
}
int main(void)
{
int n;
while(std::cin >> n)
{
std::cout <<"ZeorN = " << ZeroN(n) << std::endl;
std::cout <<"OneN = " << OneN(n) << std::endl;
std::cout << std::endl;
}
return 0;
}
版权声明:本文为u011361880原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。