• 统计一个十进制数 的二进制中有多少个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就会进行多少次与计算。

  • 相关阅读:
    多壁碳纳米管-室温离子液体1-丁基-3-甲基咪唑六氟磷酸盐([EMIM]PF6)修饰辣根过氧化物酶(HRP)|新型碳糊酶电极(HRP-MWCNTs-CILE)
    2023 年 Bitget Wallet 测评
    大数据技术基础实验五:Zookeeper实验——部署ZooKeeper
    Django项目 - 合并PDF文件
    [NOIP2012 提高组] 国王游戏
    http日志打印
    JAVA的学习日记
    iTextSharp 使用详解
    Spring Cloud CLI简介
    459-Linux基础(echo)
  • 原文地址:https://blog.csdn.net/m0_51233386/article/details/126363892