判断二进制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);
    }
相关推荐
CGG927 分钟前
【单例模式】
android·java·单例模式
先做个垃圾出来………8 分钟前
汉明距离(Hamming Distance)
开发语言·python·算法
苦学编程的谢9 分钟前
多线程代码案例-1 单例模式
java·开发语言·单例模式
yaoxin52112312 分钟前
80. Java 枚举类 - 使用枚举实现单例模式
java·开发语言·单例模式
夏季疯38 分钟前
学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)
java·笔记·学习
小羊在奋斗1 小时前
【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树
算法·leetcode·职场和发展
卡戎-caryon1 小时前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程
2301_794461572 小时前
力扣-283-移动零
算法·leetcode·职场和发展
编程绿豆侠2 小时前
力扣HOT100之二叉树:98. 验证二叉搜索树
算法·leetcode·职场和发展
头发那是一根不剩了2 小时前
怎么用idea分析hprof文件定位JVM内存问题
java·jvm