^(异或): a ^ b ^ b = a
面试题:
实现两个变量值的交换
1.引用第三方变量
int i = 1;
int j = 2;
int temp = i;
i = j;
j = temp;
2.使用位异或(^)
int i = 1;
int j = 2;
i = i ^ j;
j = i ^ j;//i ^ j ^ j = i
i = i ^ j;//i ^ j ^ i ^ j ^ j = j
<<(左移):
公式: A << B = A * (2 ^ B)
例: 3 << 2 = 3 * (2 ^ 2) = 12
>>(右移):
公式: A >> B = A / (2 ^ B)
例: 3 >> 2 = 3 / (2 ^ 2) = 0