LeetCode 191. Number of 1 Bits(位运算)

  • 2020 年 2 月 12 日
  • 笔记

题目

题意:求一个数的二进制形式里有多少个1,我们可以用位运算一位一位的去取,但是还有更高级的方法。

x&(-x) 得出的x的从右往左第一个1,形成的十进制数。我们每次让x – x&(-x),不断的减1,就好了。

class Solution {  public:      int hammingWeight(uint32_t n) {            int ans=0;            while(n)          {              n-=(n&(-n));              ans++;            }          return ans;        }  };