• 统计一个十进制数 的二进制中有多少个1


    int fun(int x){
        int count = 0;
        while(x){
            count++;
            x = x &(x-1);
        }
        return count;
    }
    int main(){
        cout << "fun(2015)=" << fun(2015)<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    答案:2015=11111011111共10个1.

    x每次与x-1进行一次与(&)操作,就会导致x二进制中的1减少一个。 通过函数func可知,x二进制中有多少位1就会进行多少次与计算。

  • 相关阅读:
    LCR 157. 套餐内商品的排列顺序
    如何优雅部署OpenStack私有云I--Kolla
    基于android的 rk3399 同时支持多个USB摄像头
    人工智能在电子商务中的突破性优势
    2022电工(初级)上岗证题目及答案
    [C++数据结构](33)图,图的遍历,最小生成树,最短路径算法详解
    java毕业设计养老院管理系统Mybatis+系统+数据库+调试部署
    多线程---线程安全问题及解决
    Ubuntu手机和电脑安装其他终端Terminal Emulator
    微服务架构学习与思考(09):分布式链路追踪系统-dapper论文学习
  • 原文地址:https://blog.csdn.net/m0_51233386/article/details/126363892