题目:
描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入:
5
复制输出:
2
结果:
解题思路:
1,获取数字;
2,循环判断数字与1 位运算&,如果与后依然是1,说明最后一个二进制为1,count+1,数字右移1;
代码:
#include <stdio.h>
int main() {
int n;
int count = 0;
scanf("%d", &n);
while(n) {
if(n & 1) {
count++;
}
n = n>>1;
}
printf("%d\n", count);
return 0;
}