zoukankan      html  css  js  c++  java
  • 一个非常有用的算法---统计二进制数中1的个数

    本人算法小菜,看见一个非常好的算法,统计一个数的二进制数的1的个数。觉得不错,与大家分享。

    1 int fun(int x){
    2     int count = 0;
    3     while(x){
    4         count++;
    5         x = x &(x-1)
    6     }
    7     return count;
    8 }

      下面是个人的一点解释(欢迎拍砖)

      比如一个数x的二进制后面几位是1000.

             x-1的二进制后面几位变成了     0111.

         二者&,变成了                            0000

    而对于原数x的二进制数而言,就从右端减少了一个1。所以上述算法是计算二进制1的个数。

  • 相关阅读:
    。。。
    __new__ 单例
    bokeh
    空间数据可视化
    关系网络图
    Pandas 50题练习
    seaborn
    数据输出及内容美化 简单介绍
    数据分析---项目总结
    数学建模
  • 原文地址:https://www.cnblogs.com/plxx/p/4605124.html
Copyright © 2011-2022 走看看