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

相关推荐

牛客44664404...:把个人技能删了搞这么长干什么!还有你面试要先针对那个公司的技术栈专门去准备,别一问三不知,他需要你会他们公司对口的技术,写这么多不对口没有用
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务