// for循环测试: 使用位运算符实现以下条件：判断一个数的二进制表示中有多少个 1
#include <iostream>
#include <cmath>

using namespace std;

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

    int count = 0; // 统计 1 的个数
    int temp = 0;  // 临时变量
    for (int i = 0; temp < n; i++)
    {
        temp = 1 << i;
        if ((n & temp) == temp)
            count++;
    }

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