题目描述
输入一个整数n,输出该数32位二进制表示中1的个数。其中负数用补码表示。
例子:
10的32位二进制表示为0000 0000 0000 0000 0000 0000 0000 1010
其中有2个1,所以结果为2
输入格式:
输入一个整数
输入样例:
10
输出样例:
这个整数中1的个数为:2
#include<stdio.h>
#include<stdbool.h>
int NumberOf1(unsigned int a){
int count = 0;
while(a){
if(a % 2 == 1){
count++;
}
a /= 2;
}
return count;
}
int main(){
int a = 0;
printf("请输入一个整数:");
scanf("%d",&a);
int num = NumberOf1(a);
printf("这个整数中1的个数为:%d\n",num);
return 0;
}