分析一下最简单高效的整数互换方式
来源:互联网 发布:北京骏溢至信 淘宝 编辑:程序博客网 时间:2024/05/16 09:54
正好有空,分析一下之前看到过的整数交换的最高效的方式,打算以后一直采用这种方式了。经验证,负数也是没问题的,可以放心使用。
原理:异或操作可以得到两个数间的差异信息,两个数各自结合差异信息即可得到对方的值。
/** * Created by Json Wan on 2017/10/7. * Description:异或操作可以得到a,b间的差异信息,a,b各自结合差异信息即可得到对方的值 */public class TestExchange { public static void main(String[] args) { int a=2017,b=9999,diff; System.out.println("原始:a="+a+";b="+b); //实现交换 a=a^b; b=b^a; a=a^b; System.out.println("a="+a+";b="+b); //分析原理 diff=a^b; b=b^diff; a=diff^a; System.out.println("a="+a+";b="+b); //验证交换律 a=a^b; b=a^b; a=a^b; System.out.println("a="+a+";b="+b); diff=a^b; b=b^diff; a=a^diff; System.out.println("a="+a+";b="+b); //验证对称性 b=a^b; a=a^b; b=a^b; System.out.println("a="+a+";b="+b); //验证负数 a=-9999;b=2017; System.out.println("原始:a="+a+";b="+b); b=a^b; a=a^b; b=a^b; System.out.println("a="+a+";b="+b); a=-9999;b=-2017; System.out.println("原始:a="+a+";b="+b); b=a^b; a=a^b; b=a^b; System.out.println("a="+a+";b="+b); }}结果如下:
阅读全文
0 0
- 分析一下最简单高效的整数互换方式
- 分布式Session原理,最简单而高效的实现方式
- 业务培训视频会议解决方案--目前最高效简单的方式
- SQL延伸2-最简单的行列互换
- 简单剖析一下 HttpServer的实现方式
- 最简单最高效的Git教程---SourceTree
- 整数互换
- 整数互换
- C# CopyMemory 整数、浮点数内存互换(不是简单的类型转换)
- 简单的高效算法分析初步?
- 简单分析一下uboot的主要数据结构
- 简单的分析一下sencha touch2
- 简单的分析一下sencha touch2
- 输入10个整数,用函数编程将其中最大数于最小数位置互换,然后输出互换后的数组。
- 你会休息吗?掌握最高效的休息方式
- 你会休息吗?掌握最高效的休息方式
- 用最高效的方式计算2*8
- 最高效的XML解析方式-----Simple 简化 XML 解析
- MySql (三) 表约束和常用的数据类型
- 【MongoDB】shard 片键选择
- MySql (四) ER图与实体关系映射
- 构建机器学习项目(一)- ML Strategy(1)
- 666
- 分析一下最简单高效的整数互换方式
- django 开发(2)
- 04-Hypothesis Test & p-value
- adjango开发(3)
- 撩妹名词解释
- 纳米器件,量子点理论文献拾遗
- django 开发(4)
- [BZOJ1057][ZJOI2007]棋盘制作 (单调栈/悬线法)
- 【BZOJ1077】【SCOI2008】天平