题解 | #求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,表示程序正常结束。