题解 | #求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;
}
  1. 声明一个整型变量x用于存储用户输入的整数。
  2. 声明一个整型变量ans并初始化为0,用于计数二进制表示中1的个数。
  3. 使用while循环,只要x不为0,就继续执行循环体。
  4. 在循环体内部,使用x & 1来获取x的最低位,如果最低位是1,则ans加1。
  5. 使用x >>= 1x右移一位,即将x除以2并取整,丢弃最低位。
  6. x变为0时,循环结束。
  7. 输出ans的值,即1的个数。
  8. 返回0,表示程序正常结束。
全部评论

相关推荐

我在朝九晚六双休的联想等你:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务