1 class Solution01 { 2 public: 3 int NumberOf1(int n) { 4 int cnt = 0; 5 while (n) 6 { 7 if (n & 1)cnt++; 8 n = n >> 1; 9 } 10 return cnt; 11 } 12 };
1 class Solution02 { 2 public: 3 int NumberOf1(int n) { 4 int cnt = 0; 5 unsigned num = 1;//一定是无符号的!!! 6 while (num) 7 { 8 if (n & num)cnt++; 9 num = num << 1;//num<<1不能改变num的 10 } 11 return cnt; 12 } 13 };
1 class Solution03 { 2 public: 3 int NumberOf1(int n) { 4 int cnt = 0; 5 while (n) 6 { 7 ++cnt; 8 n = (n - 1)&n; 9 } 10 return cnt; 11 } 12 };
原文:https://www.cnblogs.com/zzw1024/p/11656614.html