`
v5qqbrowser
  • 浏览: 354847 次
文章分类
社区版块
存档分类
最新评论

程序员面试100题(算法)之整数的二进制表示中1的个数(两种方法)

 
阅读更多
// 程序员面试100题(算法)之整数的二进制表示中1的个数 
#include "stdafx.h"
#include <iostream>

using namespace std;

int NumberOf1_s1(int num)
{
	int count = 0;
	unsigned int flag = 1;

	while(flag != 0)
	{
		if((num & flag) != 0)
		{
			count++;
		}

		flag = flag << 1;
	}

	return  count;
}

int NumberOf1_s2(int num)
{
	int count = 0;

	while(num != 0)
	{
		num = (num - 1) & num;
		count++;
	}

	return  count;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int num = 0;

	cin >> num;
	cout << NumberOf1_s2(num) << endl;

	return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics