文档章节

使用异或运算使两个变量的值互换

o
 osc_x4h57ch8
发布于 2018/04/24 11:18
字数 247
阅读 0
收藏 0

精选30+云产品,助力企业轻松上云!>>>

1,首先需要明确的是异或运算满足交换律和结合律,即有如下公式

a^b=b^a;
b^a^b=a^b^b;

2,其次,异或运算还满足下面的公式

a^a=0;
a^0=a;

3,使用异或运算实现两个变量交换变量值的代码如下

a=a^b;
b=a^b;
a=a^b;

4,对第三步的代码进行分析如下

a=a^b;
b=a^b=a^b^b=a^(b^b)=a^0=a;
a=a^b=a^b^a=b^(a^a)=b^0=b;

从而实现了使用异或运算将两个变量值互换。

5,在日常编程情况下,不建议使用这种方法,首先是速度不一定能够得到提高。

6,对这种方法的另一种理解:

1 a^b=diff;//diff为a,b两个变量的差值
2 a^diff=b;//a减去差值为b
3 b^diff=a;//b减去差值为a

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

pyhon

cython 相关的帖子. http://blog.behnel.de/categories/cython.html https://www.nexedi.com/ 我们追求的价值观 家 多核Python HTTP服务器(比Go更快)(破坏者:Cython) 价值观 当让-保罗·...

MtrS
19分钟前
9
0
多处理与线程Python - Multiprocessing vs Threading Python

问题: I am trying to understand the advantages of multiprocessing over threading . 我试图了解多处理优于线程的优势。 I know that multiprocessing gets around the Global Interpret......

法国红酒甜
24分钟前
9
0
格式编号始终显示2个小数位 - Format number to always show 2 decimal places

问题: I would like to format my numbers to always display 2 decimal places, rounding where applicable. 我想将数字格式化为始终显示2个小数位,并在适用的情况下四舍五入。 Examples...

富含淀粉
今天
22
0
Docker可视化工具Portainer

1 前言 从没想到Docker也有可视化的工具,因为它的命令还是非常清晰简单的。无聊搜了一下,原来已经有很多Docker可视化工具了。如DockerUI、Shipyard、Rancher、Portainer等。查看对比了一番...

南瓜慢说
今天
20
0
日志系统新贵 Loki,真香!!

最近,在对公司容器云的日志方案进行设计的时候,发现主流的ELK或者EFK比较重,再加上现阶段对于ES复杂的搜索功能很多都用不上最终选择了Grafana开源的Loki日志系统,下面介绍下Loki的背景。...

庞陆阳
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部