判断二进制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);
    }
相关推荐
2501_941111463 分钟前
C++中的组合模式变体
开发语言·c++·算法
源码君miui520866 分钟前
JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
android·java·ios
想唱rap20 分钟前
Linux下进程的状态和优先级
linux·运维·服务器·开发语言·数据结构·算法
鹿衔`24 分钟前
解决Flink on Yarn模式多Yarn Session会话提交
java·前端·flink
静若繁花_jingjing40 分钟前
SpringBoot/SpringMvc/SpringCloud
java·spring boot·spring cloud
q***046340 分钟前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
稚辉君.MCA_P8_Java41 分钟前
Sqoop 实现的功能是什么
java·服务器·架构·kubernetes·sqoop
普通网友42 分钟前
单元测试在C++项目中的实践
开发语言·c++·算法
w***48142 分钟前
【Spring】IDEA中创建Spring项目
java·spring·intellij-idea
Thexhy1 小时前
Java大模型后端开发全流程指南
java·ai·大模型