判断二进制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);
    }
相关推荐
Data_agent6 分钟前
1688获得1688店铺列表API,python请求示例
开发语言·python·算法
2401_871260029 分钟前
Java学习笔记(二)面向对象
java·python·学习
是梦终空31 分钟前
计算机毕业设计252—基于Java+Springboot+vue3+协同过滤推荐算法的农产品销售系统(源代码+数据库+2万字论文)
java·spring boot·vue·毕业设计·源代码·协同过滤算法·农产品销售系统
2301_7644413337 分钟前
使用python构建的应急物资代储博弈模型
开发语言·python·算法
丿BAIKAL巛39 分钟前
Java前后端传参与接收全解析
java·开发语言
小熳芋40 分钟前
验证二叉搜索树- python-递归&上下界约束
数据结构
cc蒲公英1 小时前
javascript有哪些内置对象
java·前端·javascript
guslegend1 小时前
Spring AOP高级应用与源码剖析
java
Rover.x1 小时前
head table is mandatory
java·apache
yanghuashuiyue1 小时前
Java过滤器-拦截器-AOP-Controller
java·开发语言