算法系列——位运算trick

86 阅读1分钟

异或

异或相当于无进位加法,满足交换律和结合律。

交换两个数

public void swap(int a, int b){
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}

查找一个数最右侧的1

int index = a & (~a + 1);