码迷,mamicode.com
首页 > 其他好文 > 详细

异或交换两数

时间:2018-10-07 10:38:54      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:style   运算   原理   temp   完成   nbsp   视频   相同   code   

从左神算法视频里get到一个小技巧:

通过异或运算来交换两数

看上去瞬间逼格高了不少

 

int a=11;
int b=12;
int temp=a^b;
a=temp^a;
b=temp^b

其实原理很简单,

先科普(小白请看)一下异或运算

两个二进制数异或运算 同位上相同时为0 不同时为1;

(同或运算则相反,相同为1,不同为0)

所以上面 a=temp^a=a^a^b=0^b;

0异或任何数=异或的那个数本身;

所以我们就完成了两个数的交换;

 

异或交换两数

标签:style   运算   原理   temp   完成   nbsp   视频   相同   code   

原文地址:https://www.cnblogs.com/pszp/p/9749247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!