题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
#include <iostream>
int main() {
int x;
std::cin >> x;
int ans(0);
while (x) {
ans += x & 1;
x >>= 1;
}
std::cout << ans << std::endl;
return 0;
}
- 声明一个整型变量
x用于存储用户输入的整数。 - 声明一个整型变量
ans并初始化为0,用于计数二进制表示中1的个数。 - 使用
while循环,只要x不为0,就继续执行循环体。 - 在循环体内部,使用
x & 1来获取x的最低位,如果最低位是1,则ans加1。 - 使用
x >>= 1将x右移一位,即将x除以2并取整,丢弃最低位。 - 当
x变为0时,循环结束。 - 输出
ans的值,即1的个数。 - 返回0,表示程序正常结束。


查看3道真题和解析