方法1
右移操作,和1做与运算,这样如果最后一位为1就加一,否则继续右移
public static int method(int a) {
int sum = 0;
while(a>=1) {
sum += a&1;
a>>=1;
}
return sum;
}
方法2
给定一个数,每进行一次n&(n-1)的计算,结果中就会少了一位1。
public static int method(int a) {
int sum = 0;
while (a > 0) {
a = a & (a - 1);
sum++;
}
return sum;
}
版权声明:本文为Mason97原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。