题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
解题思路:
因为要求是32位int 所以for循环的循环次数为32次
然后利用十进制与二进制转化的方法
让输入的数据与2取余数,当余数为1时计数变量加一,
最后输出计数变量的值就可以
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int a=0, i=0,b=0;
scanf("%d",&a);
for(i=0;i<32;i++)
{
if(a%2==1)
{
b++;
}
a/=2;
}
printf("%d",b);
return 0;
}
查看28道真题和解析