日期:2014-05-20  浏览次数:20616 次

变量值置换
边学变发表呵呵

int m; int n;置换m n 的值
1.设置中间变量 int temp; temp=m; m=n; n=temp;

2.m=m+n;n=m-n;m=m-n; 这个方法 如果m n很大 m+n有可能会超过int的范围 ---不可取

3.这个我是一点不理解 求解释 呵呵
  m=m^n;
  n=m^n;
  m=m^n;
 

------解决方案--------------------
^是异或
3的效果和2差不多,不过3可以避免溢出
1^0 = 1 相当于1+1
0^0 = 0 相当于0+0
1^1 = 0 相当于1+1=2(2的二进制就是10,舍掉高位1就剩下低位0,相当于高位溢出,剩下低位)



------解决方案--------------------
3楼正解
++
------解决方案--------------------
第三个是用位操作进行置换!但是这个方法也有缺点,效率不是很高啦