判断二进制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);
    }
相关推荐
我是大猴子12 分钟前
事务失效的几种情况以及是为什么(详解)
java·开发语言
不熬夜的熬润之13 分钟前
APCE-平均峰值相关能量
人工智能·算法·计算机视觉
yzx99101314 分钟前
实时数据流处理实战:从滑动窗口算法到Docker部署
算法·docker·容器
佩奇大王36 分钟前
P674 三羊献瑞
算法·深度优先·图论
wertyuytrewm1 小时前
Java面试——Java基础
java·jvm·面试
czlczl200209251 小时前
RAG实现思路流程
java·jvm
带娃的IT创业者1 小时前
WeClaw_40_系统监控与日志体系:多层次日志架构与Trace追踪
java·开发语言·python·架构·系统监控·日志系统·链路追踪
Y001112361 小时前
JDBC原理
java·开发语言·数据库·jdbc
发疯幼稚鬼1 小时前
大整数乘法运算
c语言·算法
励志的小陈1 小时前
数据结构Stack(C语言--用数组实现栈)
c语言·数据结构