判断二进制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);
    }
相关推荐
NAGNIP3 分钟前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
用户2986985301412 分钟前
Java HTML 转 Word 完整指南
java·后端
渣哥21 分钟前
原来公平锁和非公平锁差别这么大
java
渣哥31 分钟前
99% 的人没搞懂:Semaphore 到底是干啥的?
java
J2K40 分钟前
JDK都25了,你还没用过ZGC?那真得补补课了
java·jvm·后端
kfyty72543 分钟前
不依赖第三方,不销毁重建,loveqq 框架如何原生实现动态线程池?
java·架构
美团技术团队1 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
isysc12 小时前
面了一个校招生,竟然说我是老古董
java·后端·面试
道可到5 小时前
Java 反射现代实践速查表(JDK 11+/17+)
java
Fanxt_Ja6 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表