C语言 统计一个数的二进制中1的个数 求程序
C语言 统计一个数的二进制中1的个数 求程序
没人回答就我来献丑吧
int n=0,z=0,b=1;
scanf_s("%d",n);
for(int i=0;i<32;i++)
{
if(n&b)>0 z++;
b*=2;
}
printf_s("%d",z);
代码前后自己补充
可以把这个数字和1进行&运算,结果为1说明最低位是1,之后对这个数进行右移1位的操作,直到这个数为0.
#include <stdio.h>
int main() {
int num,sum=0;
scanf("%d",&num);
while(num!=0)
{
if(num & 1 == 1)
{
sum++;
}
num >>= 1;
}
printf("%d\n",sum);
return 0;
}