Solution 28: 整数中1的个数

问题描述

输入1个整数,求其二进制表示中有多少个“1”。

解决思路

1. 不断右移,碰到1与0与,计数;(对于负数不可,会死循环);

2. 与(n-1)与,相当于清除最右端的“1”,计数。

程序

思路2:

public class NumOfOne {
	public int getNumOfOne(int num) {
		int count = 0;
		while (num != 0) {
			num = num & (num - 1);
			++count;
		}
		return count;
	}
}

  

原文地址:https://www.cnblogs.com/harrygogo/p/4634952.html