位运算基础——不需要额外空间交换两个数

不用额外空间交换两个数

基础位运算

1
2
3
4
&----与
|----或
!----非
^----异或

简单交换算法

1
2
3
4
5
6
void Swap(int& num1, int& num2){
num1 = num1 ^ num2;
num2 = num1 ^ num2; //num2 = num1 ^ num2 ^ num2 = num1;
num1 = num1 ^ num2; //num1 = num1 ^ num2 ^ num1 = num2;
}