// 使用位运算符实现以下条件：判断一个数的二进制表示中有多少个 1
// 例如：输入 5，输出 2 : 5 的二进制表示为 101，其中有 2 个 1
#include <iostream>
#include <bitset>

using namespace std;

int main()
{
    int n;
    cout << "请输入一个整数: ";
    cin >> n;

    int cnt = 0; // 计数器
    while (n)
    {
        if (n & 1)
            cnt++; // 如果 n 的最后一位是 1，计数器加 1
        n >>= 1;   // n 右移一位
    }

    cout << "二进制表示中有 " << cnt << " 个 1" << endl;
    return 0;
}