天天看点

JZ11 二进制中1的个数题目描述思路分析代码实现

JZ11 二进制中1的个数

  • 题目描述
  • 思路分析
  • 代码实现

题目描述

点这里

思路分析

位运算

lowbit函数返回最后一位1对应的数。

故每次把最后一个1减去,看能减多少次,减法次数即为1的个数。

代码实现

class Solution {
public:
     int  NumberOf1(int n) {
         int res=0;
         while(n) n-=lowbit(n),res++;
         return res;
     }
    int lowbit(int x){return x&-x;}
};