码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:blog   代码   io   div   amp   re   

题目:输入一个整数,求该整数的二进制表达中有多少个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的个数

标签:blog   代码   io   div   amp   re   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!