题解 | #求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; }