class Solution { public: int NumberOf1(int n) { int res = 0; for (int i=0; i<32; i++){ if ((n & (1<<i)) != 0) res++; } return res; } };
n:二进制32位,
1<<i:32位,i位=1,其他位为0
位与操作:
- 如果n的i位=1:n&(1<<i) == (1<<i) != 0
- 如果如果n的i位=0:n&(1<<i) == 0
class Solution { public: int NumberOf1(int n) { int res = 0; for (int i=0; i<32; i++){ if ((n & (1<<i)) != 0) res++; } return res; } };
n:二进制32位,
1<<i:32位,i位=1,其他位为0
位与操作: