输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表_百度笔试题_牛客网 (nowcoder.com)https://www.nowcoder.com/questionTerminal/2979a0102b144c879088bdd5af51327e输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
#include<stdio.h>
int main()
{
int m;
int count = 0;
scanf("%d",&m);
int a[32];
for (int i = 0; i < 32; i++)
{
/*a[i] = m % 2;
m /= 2;
if (a[i] == 1)
count++;*/
if (((m >> i) & 1) == 1)
{
count++;
}
}
printf("%d\n", count);
return 0;
}