标签:
问题描述
输入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;
}
}
标签:
原文地址:http://www.cnblogs.com/harrygogo/p/4634952.html