分类: C/C++
2018-08-29 20:25:42
04. 交换两个变量的值,不使用第三个变量
我们知道,如果当进行按位操作的时候可以使用两个变量。
而此题正可以应用异或操作来完成。
数学公式:
a⊕b = (?a ∧ b) ∨ (a ∧?b)
伪代码:
a xor b = (~a and b) or (a and ~b)
C代码:
点击(此处)折叠或打开
点击(此处)折叠或打开
那么,b = ((~b) & ((~a) & b) | (a & (~b))) | (b & (~(((~a) & b) | (a & (~b)))));
a = ((~a) & ((~b) & a) | (b & (~a))) | (a & (~((~b) & a) | (b & (~a))));
实现代码:
点击(此处)折叠或打开