[位运算]异或运算^、与运算&
一 异或运算 ^
1. 任意数和0异或都是原来的数:
a ^ 0 = a;
2. 任意数与自己异或都等于0:
a ^ a = 0;
3. 满足交换律和结合律:
a ^ b ^ a = a ^ a ^ b = 0 ^ b = b;
4. 0 与1 的异或,相同为0,相反为1:
1 ^ 1 = 0;
1 ^ 0 = 1;
0 ^ 1 = 1;
0 ^ 0 = 0;
二 与运算 &
1. 任意的二进制x,与0&都等于0;与1&都等于本身
x & 0 = 0;
x & 1 = x;
// true为1 ,false为0;
位运算速度远大于取模运算,算法题时可以替换使用!
x & 1 等价于 x % 2 == 1
// x如果是偶数,
// 左边式子,x二进制最后一位就是0, 0 & 1 = 0 , 0 是false,左边式子为false
// 右边式子,x是偶数%2 为0 ,0 != 1,右边式子也为false; 左右式子等价
// x如果是奇数
// x如果是奇数,二进制最后一位就是1,1 & 1 = 1,1为t
共有 0 条评论