首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

变量值置换,该怎么解决

2012-04-24 
变量值置换边学变发表呵呵int m int n置换mn的值1.设置中间变量int temptempm mn ntemp2.mm+nn

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

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

热点排行