读书人

变量值置换,该怎么解决

发布时间: 2012-04-24 14:15:38 作者: rapoo

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

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楼正解
++
[解决办法]
第三个是用位操作进行置换!但是这个方法也有缺点,效率不是很高啦

读书人网 >J2SE开发

热点推荐