利用手动计算二进制的方法查找二进制中1的个数,注意输入为 -2147483648(即INT_MIN)的情况时,如果转为int型则会导致整数溢出,所以可以使用unsigned int来表示

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    int NumberOf1(int n) {
        // write code here
        int num = 0;
        unsigned int nu = n;
        if(nu < 0)
            nu = -1 * nu;
        while(nu != 0)
        {
            int temp = nu % 2;
            if(temp == 1)
                num++;
            nu /= 2;
        }
        return num;
    }
};