判断二进制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);
    }
相关推荐
spencer_tseng14 小时前
springcloud + javaframework + h5
java·spring·spring cloud
Maỿbe14 小时前
力扣hot图论部分
算法·leetcode·图论
LYFlied15 小时前
【每日算法】LeetCode 78. 子集
数据结构·算法·leetcode·面试·职场和发展
月明长歌15 小时前
【码道初阶】【Leetcode606】二叉树转字符串:前序遍历 + 括号精简规则,一次递归搞定
java·数据结构·算法·leetcode·二叉树
子枫秋月15 小时前
C++字符串操作与迭代器解析
数据结构·算法
鹿角片ljp15 小时前
力扣234.回文链表-反转后半链表
算法·leetcode·链表
原来是好奇心15 小时前
深入Spring Boot源码(八):高级特性与扩展点深度解析
java·源码·springboot
(●—●)橘子……15 小时前
记力扣1471.数组中的k个最强值 练习理解
数据结构·python·学习·算法·leetcode
oioihoii15 小时前
C++共享内存小白入门指南
java·c++·算法
Bruce_kaizy15 小时前
c++图论————图的基本与遍历
c++·算法·图论