class Solution { public: int NumberOf1(int n) { int cnt = 0; if(n==0)return 0; if(n<0){ n = 2147483647 + n + 1; // 转成对应正数 cnt += 1; // 符号位+1 } while(n != 0){ cnt += (n&1); n = n >> 1; } return cnt; } };