首页 > 其他 > 详细

求一个整数的二进制中1的个数

时间:2014-07-06 22:34:55      阅读:359      评论:0      收藏:0      [点我收藏+]

题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。

假设该整数为i。首先i和1做与运算,判断i的最低位是不是为1。接着把1左移一位得到2,再和i做与运算,就能判断i的次高位是不是1……这样反复左移,每次都能判断i的其中一位是不是1。基于此,我们得到如下代码

int NumberOf1_Solution(int i)
{
      int count = 0;
      unsigned int flag = 1;
      while(flag)
      {
            if(i & flag)
                  count ++;
            flag = flag << 1;
      }
      return count;
}

  

求一个整数的二进制中1的个数,布布扣,bubuko.com

求一个整数的二进制中1的个数

原文:http://www.cnblogs.com/lhmily/p/3824438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!