输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

// test14.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<string>
#include<cctype>
#include <vector>
#include<cstring>
//#include<stdexcept>
#include<exception>
using namespace std;

class Solution {
public:
	int  NumberOf1(int n) {
		int charNum = sizeof(n);
		int flag = n;
		int num = 0;

		for (int i = 0; i < charNum * 8; i++)
		{
			if (flag & 1)
				num++;
			flag = flag >> 1;
		}
		return num;
	}
};

int main()
{
	Solution so;
	int n;
	int num;
	while (true)
	{
		cout << "请输入一个正数: ";
		cin >> n;
		num = so.NumberOf1(n);
		cout << "改数二进制表示中1个数为: " << num << endl;
		cout << endl;
	}
	
	
}
原文地址:https://www.cnblogs.com/wdan2016/p/5916299.html