判断二进制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);
    }
相关推荐
歌_顿5 分钟前
微调方法学习总结(万字长文!)
算法
@小码农11 分钟前
202512 电子学会 Scratch图形化编程等级考试四级真题(附答案)
java·开发语言·算法
程序猿ZhangSir19 分钟前
深入理解 BIO,NIO,AIO 三者的用途和区别?Select,poll,epoll 操作系统函数简介
java·spring·nio
智航GIS20 分钟前
6.2 while循环
java·前端·python
2201_7578308720 分钟前
AOP核心概念
java·前端·数据库
为所欲为、Lynn22 分钟前
用FastJson的Filter自动映射枚举
java·spring boot
qq_3363139322 分钟前
java基础-IO流(转换流)
java·开发语言·python
雪人.23 分钟前
JavaWeb经典面试题
java·服务器·前端·java面试题
mit6.82426 分钟前
右端点对齐|镜像复用
算法
扶苏-su26 分钟前
Java---IO流原理和分类
java·开发语言