异或——交换、奇数次数、最右的1

1.

2.

设一个变量res异或每一个数

3.

a&((~a)+1)

4.

5.

求二进制1的个数

    public int bit1counts(int n){
        int count=0;
        while(n!=0){
            int rightOne=n&((~n)+1);
            count++;
            n^=rightOne;
        }
        return count;
    }

猜你喜欢

转载自blog.csdn.net/qq_41041762/article/details/115036424