交换2个数值的方法
来源:互联网 发布:微信机器人 java 编辑:程序博客网 时间:2024/04/30 14:12
如何交换2个变量的值?一般来说,想到的方法是再找一个临时变量,通过一种顺序存放的方式来达到交换值的效果。
比如有a,b这2个变量。取同类型的变量temp。
temp = a ; a = b ; b = temp ;
这样就完成了交换。
但这样做的话会多使用一个temp的内存。如果没有溢出的问题,可以尝试加减法。
a = a + b ; b = a - b ; a = a - b ;
换成数学运算来表示,a1 = a + b ; b1 = a1 - b = a + b - b = a ; a = a1 - b1 = a + b - a = b ;
完成整个运算无需temp。
还有一种方法,使用异或运算。
2个变量a和b。方法如下:
a = a^b ; b = b^a ; a = a^b ;
交换的过程:
a1 = a^b ;
b1 = b^a1 = b^a^b = a ;
a1 = a1^b1 = a^b^a = b ;
这里的b1与a1就是我们想要的。
/*----------------------- 关于异或运算 ---------------------*/
异或,相同为0,不同为1 。
真值表:
a^b01001110根据真值表我们可以得到:a^a = 0 ; b^0 = b ;
假设t = 0011 ;那么 t^0000 = 0011 ^ 0000 = 0011 ;
t^1111 = 0011 ^ 1111 = 1100 ;
0 0
- 交换2个数值的方法
- 交换2个数值的方法
- 变量数值交换的三种方法
- 把两个变量交换数值的方法
- 交换两个数值的几种方法
- 关于数值交换的几种方法
- swift交换两个变量的数值方法
- 实现两数值型变量交换数值的方法
- 交换2个数值,不使用第三个变量
- Java 俩个数值交换
- 两个数值的交换(无需借助第三个参数)
- 数值的交换
- 不用第三变量交换整型数值的三种方法
- c语言交换两个数值的四种方法.
- Java 中 数值交换的几种方法
- java 两个数值交换的6种方法
- <实例>C++中交换两数值的几种方法
- 交换两个数值型变量的最快方法
- jsp页面占满显示问题
- TCP_NODELAY详解
- Linux学习笔记-Linux的优缺点
- MySQL 中文乱码解决方案
- 【Effective Objective-C 2.0读书笔记】第六章:块(Blocks)和大中枢派发(GCD)
- 交换2个数值的方法
- [BZOJ1176][Balkan2007]Mokia && CDQ分治+树状数组
- UVA - 10935 Throwing cards away I (数组)
- ReactNative 概述
- C++实现简单源代码计算
- Python 传值和引用总结
- 轻松搞定DLL(原理与实现)[整理+原创]
- Android推送服务——百度云推送
- $事件委托