要编写实现该程序的代码需要用到按位与操作符。
具体思路如下:
假如这个整数是10,那么它以整数(int)的二进制形式存在内存中,形式如下:
00000000000000000000000000001010
对于整数1,形式如下:
00000000000000000000000000000001
将10和1按位与,看10的二进制的最后一位是0,得到0(对于整数1的二进制,1前面的都是0,按位与后还是0,不用管)
随后将10进行右移,得到:
00000000000000000000000000000101
再将得到的数与1按位与,得到1,定义变量记录下来
以此类推即可
代码如下:
int main()
{
int num = 10;
int count = 0;
while (num)
{
if ((num & 1) == 1)
{
count++;
}
num >>= 1;
}
printf("count=%d", count);
return 0;
}```