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; } };