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

异或运算交换两个数

时间:2021-04-22 15:19:19      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:临时   保存   变量   结果   异或   使用   结合   异或运算   推导   

常用临时变量来保存中间值,达到交换两个数的目的,我们可以使用异或运算来交换两个数。

实现

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

原理

  • 基本性质

    • 任意变量x与自身异或结果为0,即:x^x = 0
    • 任意变量x与0进行异或运算,结果不变,即:x^0 = x
    • 异或运算的结合性:abc = (ab)c = a(bc)
    • 异或运算的交换性:a^b = b^a
  • 推导过程

a = a^b
b = a^b --> b = (a^b)^b = a^(b^b) = a^0 = a
a = a^b --> a = (a^b)^a = (b^a)^a = b^(a^a) = b^0 = b

异或运算交换两个数

标签:临时   保存   变量   结果   异或   使用   结合   异或运算   推导   

原文地址:https://www.cnblogs.com/hunter-w/p/14682940.html

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