判断二进制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);
    }
相关推荐
小七在进步7 小时前
数据结构:堆排序
数据结构
Penina10187 小时前
代码如何导入idea
java·intellij idea
.Hypocritical.7 小时前
Maven笔记——2
java·笔记·maven
huohuopro7 小时前
手写 Tomcat 步骤教程
java·网络
snow@li8 小时前
Java:Lombok 完整讲解
java
Shadow(⊙o⊙)8 小时前
高并发内存池:Part-1——定长内存池
java·前端·javascript
国服第二切图仔8 小时前
17-config命令 - 配置管理系统
java·前端·javascript
架构源启17 小时前
文档接入与智能解析:基于 Spring AI 1.1.x 的多格式解析、版面理解与结构化抽取
java·人工智能·spring
可编程芯片开发18 小时前
基于MATLAB的PEF湍流风场生成器模拟与仿真
算法
罗西的思考19 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (9)--- Reward Judging
人工智能·算法·机器学习