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;
	}
}

  

posted @ 2015-07-10 10:02  Chapter  阅读(110)  评论(0编辑  收藏  举报