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

复制代码
 public static void main3(String[] args) {
        int a = -1;
        int conut = 0;
        while(a != 0){
            a = a&(a-1);
            conut++;
        }
        System.out.println(conut);
    }
相关推荐
ml魔力信息1 分钟前
一枚指纹,开启工业IoT设备安全与权限分级实践
java·物联网·安全
雾岛—听风6 分钟前
P1012 [NOIP 1998 提高组] 拼数
算法
会飞的小蛮猪16 分钟前
SkyWalking运维之路(Java探针接入)
java·运维·经验分享·容器·skywalking
通域25 分钟前
解决启动IDEA后CPU 及内存占用过高配置调整
java·ide·intellij-idea
papership34 分钟前
【入门级-算法-5、数值处理算法:高精度的乘法】
数据结构·算法
earthzhang202135 分钟前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
谈笑也风生39 分钟前
只出现一次的数字 II(一)
数据结构·算法·leetcode
蕓晨39 分钟前
auto 自动类型推导以及注意事项
开发语言·c++·算法
一袋米扛几楼9842 分钟前
【软件安全】C语言特性 (C Language Characteristics)
java·c语言·安全
mjhcsp1 小时前
C++ 递推与递归:两种算法思想的深度解析与实战
开发语言·c++·算法