题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
/*
*1.不断用n&(n-1),每次会消耗n的1个1,如10110000 & 10101111=10100000
*/
public class Solution {
public int NumberOf1(int n) {
int res = 0;
while (n != 0) {
res++;
n &= (n - 1);
}
return res;
}
}
//直接调用java内置函数
public class Solution {
public int NumberOf1(int n) {
return Integer.bitCount(n);
}
}