判断二进制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);
    }
相关推荐
漫随流水8 小时前
leetcode算法(104.二叉树的最大深度)
数据结构·算法·leetcode·二叉树
机器学习之心HML8 小时前
鲸鱼算法(WOA)优化Kriging模型
算法
DYS_房东的猫8 小时前
《 C++ 零基础入门教程》第6章:模板与 STL 算法 —— 写一次,用万次
开发语言·c++·算法
Tim_108 小时前
【算法专题训练】37、前缀树&二叉树
算法
wangkay888 小时前
【Java 转运营】Day04:抖音新号起号前准备全指南
java·开发语言·新媒体运营
NineData8 小时前
第三届数据库编程大赛-八强决赛成绩揭晓
数据库·算法·代码规范
亲爱的非洲野猪8 小时前
Java线程池深度解析:从原理到最佳实践
java·网络·python
雍凉明月夜8 小时前
深度学习之目标检测yolo算法Ⅱ(v4)
深度学习·算法·yolo·目标检测
亲爱的非洲野猪9 小时前
深入解析享元模式:用Java实现高性能对象复用
java·开发语言·享元模式
qq_401700419 小时前
Qt 事件处理机制
java·数据库·qt