//判断二进制1的个数;
public static void main4(String[] args) {
int a = -1;
int count = 0;
for (int i = 0; i < 32; i++) {
if(((a>>i)&1) != 0){
count++;
}
}
System.out.println(count);
}
通过循环32次移位实现
2.每次移位后判断后面是否还有1
public static void main2(String[] args) {
int a = -1;
int count = 0;
while(a != 0){
if((a & 1) == 1){
count++;
}
a = a>>>1;
}
System.out.println(count);
}
3.通过与 比自己小1的数 进行与运算 来消除 该数字里面的 1
public static void main3(String[] args) {
int a = -1;
int conut = 0;
while(a != 0){
a = a&(a-1);
conut++;
}
System.out.println(conut);
}