计算在一个 32 位的整数的二进制表示中有多少个 1。
eg:
样例 1:
输入:32
输出:1
解释:
32(100000),返回 1。
样例 2:
输入:5
输出:2
解释:
5(101),返回 2。
实现:
public class Solution {
/*
* @param num: An integer
* @return: An integer
*/
public int countOnes(int num) {
int sum = 0;
if(num<0){
num = num & 0x7fffffff ;
sum++;
}
if (num == 0) {
return 0;
}
while (num != 0) {
int a = num % 2;
if (a != 0) {
sum++;
}
num = num >>> 1;
}
return sum;
}
};
网友评论