剑指Offer面试题15:二进制中1的个数

// 面试题15:二进制中1的个数

// 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如

// 把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
实现代码如下:
#include
using namespace std;

//int getOneNum_1(int num);//右位移,此方法当num是负数是会陷入死循环,所以不可以 
int getOneNum_2(int num);//左位移
int getOneNum_3(int num);//能给面试官带来惊喜的解法,有几个1就只需循环几次 
void test(int num);

int main(){
	
	test(0);
	test(1);
	test(10);
	test(0x7FFFFFFF);
	test(0xFFFFFFFF);
	test(0x80000000);
	
	
	return 0;
}

void test(int num){
	cout<<"num = "<> 1;
	}
	return sum;
}
*/

int getOneNum_3(int num){
	int sum = 0;
	while(num){
		sum++;
		num = (num-1)#
	}
	return sum;
}

运行结果如下:

剑指Offer面试题15:二进制中1的个数_第1张图片

你可能感兴趣的:(C++,算法,剑指Offer,剑指Offer)