1.常规解法:不断左移1
class Solution { public: int NumberOf1(int n) { unsigned int flag=1; int count=0; while(flag){ if(n & flag) count++; flag=flag<<1; } return count; } };
2.一个技巧
class Solution { public: int NumberOf1(int n) { int count=0; while(n){ n=(n-1) & n; count++; } return count; } };