判断二进制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);
    }
相关推荐
C+-C资深大佬2 分钟前
C++数据类型
开发语言·c++·算法
派大鑫wink14 分钟前
【Day34】Servlet 进阶:会话管理(Cookie vs Session)
java·开发语言·学习方法
多米Domi01118 分钟前
0x3f 第35天 电脑硬盘坏了 +二叉树直径,将有序数组转换为二叉搜索树
java·数据结构·python·算法·leetcode·链表
想逃离铁厂的老铁24 分钟前
Day45 >> 115、不同的子序列 + 583. 两个字符串的删除操作 + 72. 编辑距离
算法·leetcode
cyyt30 分钟前
深度学习周报(1.12~1.18)
人工智能·算法·机器学习
范纹杉想快点毕业35 分钟前
C语言核心机制全解:内存、地址、数组与指针,共计30000字
算法
zqmattack39 分钟前
SQL优化与索引策略实战指南
java·数据库·sql
crossaspeed41 分钟前
Java-线程池(八股)
java·开发语言
带刺的坐椅1 小时前
又一个项级的 Java Multi Agent 开源项目
java·ai·agent·solon·智能体
Σίσυφος19001 小时前
RANSAC算法原理与应用
算法