判断二进制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);
    }
相关推荐
Chan169 分钟前
微服务 - Higress网关
java·spring boot·微服务·云原生·面试·架构·intellij-idea
二哈喇子!11 分钟前
JavaSE 与 JavaEE 知识点整合
java·servlet·tomcat
guygg8813 分钟前
基于捷联惯导与多普勒计程仪组合导航的MATLAB算法实现
开发语言·算法·matlab
fengfuyao98514 分钟前
遗传算法与粒子群算法求解非线性函数最大值问题
算法
之歆18 分钟前
Spring AI入门到实战到原理源码-多模型协作智能客服系统
java·人工智能·spring
LeetCode天天刷28 分钟前
【软件认证】比特翻转【滑动窗口】
算法
源代码•宸31 分钟前
Leetcode—1123. 最深叶节点的最近公共祖先【中等】
经验分享·算法·leetcode·职场和发展·golang·dfs
yyy(十一月限定版)31 分钟前
c++(3)类和对象(中)
java·开发语言·c++
s砚山s34 分钟前
代码随想录刷题——二叉树篇(十三)
数据结构·算法