替换a b 的值,不借助过度变量(两值相互替换不借助中间变量)
2016-06-07 10:09
681 查看
说明 : 一个数异或同一个数两次,结果还是那个数。利用的就是这个原理。
再深入说:
第二个方法
int a = 3;
int b= 5;
a = a+b;
System.out.println("a=1="+a);
b = a-b;
System.out.println("b=2="+b);
a = a-b;
System.out.println("a=3="+a);
再深入说:
^是位异或逻辑预算。 比如a = 1, b = 2; a = a^b; → a =1^2; → a =0001^0010(这里把十进制的1和2换成二进制);→ a = 0011(0001和0010对应位相同时为假(即0),不同时为真(即1)) = (此时换算成十进制)3 ; 根据以上方法: b = a^b; → b = 3^2; → b = 0011^0010 = 0001=1; a = a^b; → a = 3^1; → a = 0011^0001 = 0010 =2; 现在就是a = 2,b = 1;了
第二个方法
int a = 3;
int b= 5;
a = a+b;
System.out.println("a=1="+a);
b = a-b;
System.out.println("b=2="+b);
a = a-b;
System.out.println("a=3="+a);
相关文章推荐
- Jboss的JBWEB000065: HTTP Status 404 原因
- 捕获Home键
- SqlServer索引的原理与应用
- MacOSX中使用NSWindow创建背景透明的窗体
- js判断输入的数据是否是正整数,包括100.00(100.000)
- Linux系统启动过程
- python高阶函数
- AndroidStudio一个工程内查看多个项目的实现
- 【MongoDB】 基于C#官方驱动2.2版的封装类
- 【powerdesigner】将数据库表中Common转为PDM表中Name
- JavaScript_compare_C++_部分类似处
- JMS实战——ActiveMQ实现Pub-Sub
- linux中usb设备的probe注册全过程
- Python写的监视工具
- Espionage加密后分离磁盘.sparsebundle 文件打不开解决方案
- JSON对象遍历和处理
- poj1101
- Android 手势锁的实现 与详细的代码注释
- iOS利用代码添加事件到系统日历中
- 百度地图(一)—————让百度地图显示在自己的软件上