一条语句交换两个元素的值
2015-11-13 18:03
218 查看
今天,在公司里突然想到的一个问题,如何只使用一条语句交换两个元素的值。上代码:
经大量测试:上面这行代码完全可以做到。 还有其他的方法是利用编译器的漏洞去交换,例如:
这些有待大家去证明、实践!
public class Main { public static void main(String[] args) { int a = 5, b = 10; a = (a != b ? a^b^a : 1) ^ (a != b ? a^b^b : 1) ^ (a != b ? b = a^b^b : 1); System.out.println(a + " " + b); } }
经大量测试:上面这行代码完全可以做到。 还有其他的方法是利用编译器的漏洞去交换,例如:
b=a-(a=b)+a;在Java环境中也可以做到,但是如果用C的编译器去执行,就会不成功!
这些有待大家去证明、实践!
相关文章推荐
- FriendlyARM Tiny210开发板硬件基础 第三篇--裸机中断
- 《Programming WPF》翻译 第7章 4.转换
- 《Programming WPF》翻译 第7章 3.笔刷和钢笔
- Objective-c 类接口 (@interface) (类定义)
- Objective-c 程序结构
- Mac和Xcode的一些快捷键,看看吧,万一有你不知道的呢!
- poj 2981 Strange Way to Express Integers (中国剩余定理不互质)
- 当碰到非ARC写的文件时在ARC环境下运行报错时解决办法
- PtrFrameLayout 自定义下拉加载
- shu
- 极光推送Jpush之RestAPI使用实例
- HTML事件
- 常用的宏定义整理
- JQuery中对Select的option项的添加、删除、取值
- grid:RadGridView 页面设置单元格字体颜色
- oracle 拆分输出dbms_output.put_line longValue解决
- 《Programming WPF》翻译 第7章 2.图形
- 《Programming WPF》翻译 第7章 1.图形基础
- java.lang.UnsupportedClassVersionError: Bad version number in .class file异常的处理方法
- PLSQL流程控制