判断二进制1的个数三种方法

 //判断二进制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

判断二进制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);
    }

你可能感兴趣的:(java,算法,数据结构)