[剑指offer] 11. 二进制中1的个数

题目描述

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

利用位运算
class Solution
{
public:
  int NumberOf1(int n)
  {
    int a = 1;
    int nums = 0;
    while (a != 0)
    {
      if (n == (n | a))
        nums++;
      a <<= 1;
    }
    return nums;
  }
};

 

posted @ 2018-12-01 13:29  Ruohua3kou  阅读(105)  评论(0编辑  收藏  举报