判断二进制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);
    }
相关推荐
避避风港10 分钟前
Java 抽象类
java·开发语言·python
初学小白...13 分钟前
JVM入门知识点
java·服务器·jvm
C++chaofan21 分钟前
基于session实现短信登录
java·spring boot·redis·mybatis·拦截器·session
what_201822 分钟前
list集合使用
数据结构·算法·list
摇滚侠22 分钟前
idea 刷新maven,提示java.lang.RuntimeException: java.lang.OutOfMemoryError
java·maven·intellij-idea
果壳~32 分钟前
【Java】使用国密2,3,4.仿照https 统一请求响应加解密
java·https
hetao17338371 小时前
2025-11-13~14 hetao1733837的刷题记录
c++·算法
N 年 后1 小时前
单独Docker部署和Docker Compose部署
java·docker·容器
hansang_IR1 小时前
【题解】洛谷 P2476 [SCOI2008] 着色方案 [记搜]
c++·算法·记忆化搜索
lkbhua莱克瓦241 小时前
Java练习——数组练习
java·开发语言·笔记·github·学习方法