计算二进制中1的个数
import java.util.Scanner;
/**
* 计算二进制中1的个数
* 例如:9 0000 1001 有2位1 实现一个函数可以正确输出9的二进制中1的个数
*
* 判断最后一位 如果是1计数器++,如果不是1 计数器不变,去掉最后一位
*
*/
public class sum1 {
public static int sum(int num){
int count= 0;
while (num!=0) {
if (num % 2 != 0) {
//奇数
count++;
}
//偶数 右移一位相当于除2操作
num/=2;
}
return count;
}
public static int sum2(int num){
int count= 0;
while (num!=0) {
count++;
num&=(num-1);//去掉最后一位1
}
return count;
}
public static void main(String[] args){
System.out.println(sum(9));
System.out.println(sum2(-1));
}
}