//有两个数字10、20,编写程序交换两个数字的值
int num1 = 10;
int num2 = 20;
#region 第一种
int temp = num1 + num2;
num2 = temp - num1;
num1 = temp - num2;
#endregion
#region 第二种
//+- 相当于 |(或)^ (异或)
//加法 计算机中 0010+ 0001=0011
//减法 0010-0001=0001
//或运算 | 规则:只要有一位为1 结果就为1 0|0=0 0|1=1 1|1=1 1|0=1
//位运算 二级制每一位操作0010|0001=0011
//异或 ^ 规则: 相同是为0相异为1 0010^0001=0011
num1 = num1 | num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
#endregion
#region 第三种
int a = 10;
int b = 20;
a = b + (b = a) * 0;
//b = (a) + (a = b) * 0; 都可以改变过来
//代码从左往右执行 从上至下执行
//变量在内存中是压栈的处理过程
//这种方法它只针对数字
//可移植性差 太抽象 不好理解
#endregion