判断二进制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);
    }
相关推荐
Bruce_kaizy2 分钟前
c++单调数据结构————单调栈,单调队列
开发语言·数据结构·c++
不思念一个荒废的名字6 分钟前
【黑马JavaWeb+AI知识梳理】Web后端开发04-登录认证
java·后端
阿坤带你走近大数据7 分钟前
Python基础知识-数据结构篇
开发语言·数据结构·python
B_lack0268 分钟前
西门子PLC结构化编程_线性插值算法功能块
算法·pid·西门子plc·博途·线性插值·开环控制
fufu03119 分钟前
Linux环境下的C语言编程(四十三)
linux·c语言·算法
java1234_小锋15 分钟前
Redis到底支不支持事务啊?
java·数据库·redis
dragoooon3417 分钟前
[C++——lesson32.数据结构进阶——「初识哈希」]
数据结构·c++·哈希算法
爱笑的眼睛1140 分钟前
超越`cross_val_score`:深入剖析Scikit-learn交叉验证API的设计哲学与高阶实践
java·人工智能·python·ai
L0CK1 小时前
三种依赖注入详解
java
业精于勤的牙1 小时前
三角形最小路径和(二)
算法