去除掉二进制最右边的一个1. n&(n-1)

    /**
     * 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
     * @param n 整数
     * @return 1的个数
     */
    public int NumberOf1(int n) {
        int res=0;
        while(n!=0){
            res++;
            n&=(n-1);
        }
        return res;

    }