位运算符
与:& 或:| 非:! 异或:^ 按位取反:~
异或运算符 ^
- 法则:相同为 0,不同为 1
- 特点:一个数对另一个数异或两次,该数不变。
应用:请实现两个整数变量的交换。int a = 5,b = 10;
- 方法一: 需要第三方变量,开发推荐用这种 int temp; temp = x; x = y; y = temp; - 方法二: 不需要定义第三方变量,有弊端,有可能会超出int的取值范围 x = x + y; //10 + 5 = 15 y = x - y; //15 - 5 = 10 x = x - y; //15 - 10 = 5 - 方法三: 不需要定义第三方变量,通过 ^ 完成 x = x ^ y; //5 ^ 10 y = x ^ y; //5 ^ 10 ^ 10 = 5 x = x ^ y; //5 ^ 10 ^ 5 = 10
位移运算符
<<: 左移 左边最高位丢弃,右边补齐0 (左移一位乘2)
>>: 右移 最高位是0,左边补齐0;最高位是1,左边补齐1(右移一位除2)
>>>: 无符号右移 无论最高位是0还是1.左边补齐0