int main(void)
{
int a = 0,b,count=0;
puts("请输入一个数字");
scanf("%d", &a);
b = a;
while (a != 0) {//当这个整数变为0时,退出循环
if ((a & 1) == 1) {//当这个整数变为0时,退出循环
count++;
}
a >>=1;//将这个整数右移1位
}
printf("%d 二进制中1的个数为:%d\n",b, count);
#include <stdio.h>
int countBits(int num) {
int count = 0;
while (num != 0) {
if (num & 1) {
count++;
}
num = num >> 1;
}
return count;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
int result = countBits(num);
printf("二进制中1的个数为:%d\n", result);
return 0;
}
登录后提交答案