判断二进制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 分钟前
Java数据结构集合框架(栈(Stack)的详细解析)2000字详细解析
数据结构
Gerardisite15 分钟前
CRM、ERP、OA 如何连接企业微信?QiWe 提供标准化解决方案
java·python·机器人·自动化·企业微信
城管不管17 分钟前
Maven Helper
java·macos·intellij-idea
ch.ju19 分钟前
Java程序设计(第3版)第三章——数组的动态获取
java·开发语言
Java知识技术分享30 分钟前
策略模式的两种实现:抽象类和接口
java·spring·策略模式
液态不合群34 分钟前
Redis--哨兵机制与CAP定理
java·redis·bootstrap
曹牧35 分钟前
Java:PDF文件扁平化处理
java·开发语言·pdf
灰色人生qwer36 分钟前
解决IDEA运行Java程序jdk版本不匹配问题
java·开发语言·intellij-idea
宵时待雨37 分钟前
回溯算法专题1:递归
数据结构·c++·笔记·算法·leetcode·深度优先
yaoxin52112339 分钟前
405. Java 文件操作基础 - 装饰者模式与 I/O Streams
java·开发语言·python