牛客题霸 [二进制中1的个数] C++题解/答案
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
判断1的个数 x&(-x)=2^k 有点类似于树状数组中lowbit的操作
class Solution { public: int NumberOf1(int n) { int res=0; while(n) { n=n&(n-1); res++; } return res; } };