【位运算】之 异或
2012-03-28 00:00
399 查看
位运算异或: XOR ^
由表可知,异或运算满足:
交换律,即 a^b = b^a
结合律,即 (a^b) ^ c = a ^ (b^c) (通过(a,b,c) 八种组合验证得出 )
异或运算中,两数相同结果为0,不同则结果为1
故
a = a^b
b = a^b
a = a^b
可交换a,b
证明:
a = a^b
b = (a^b) ^ b = a^ (b^b) = a^0 = a 运用结合律
a = (a^b) ^ a = a ^ (a^b) = (a^a) ^ b = 0^b = b 先交换律,后结合律
p.s.既然每一位都会交换,因此计算机中任何资源都能通过这种异或运算来进行交换
a^b = c
a^c = b
b^c = a
知道a,b,c中任意两个就能推知第三个.
a^b = c 两边同时与a异或得: a ^ (a^b) = a^c 即 0^b = a^c 亦即 b = a^c
^ | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 0 |
交换律,即 a^b = b^a
结合律,即 (a^b) ^ c = a ^ (b^c) (通过(a,b,c) 八种组合验证得出 )
异或运算中,两数相同结果为0,不同则结果为1
故
a = a^b
b = a^b
a = a^b
可交换a,b
证明:
a = a^b
b = (a^b) ^ b = a^ (b^b) = a^0 = a 运用结合律
a = (a^b) ^ a = a ^ (a^b) = (a^a) ^ b = 0^b = b 先交换律,后结合律
p.s.既然每一位都会交换,因此计算机中任何资源都能通过这种异或运算来进行交换
a^b = c
a^c = b
b^c = a
知道a,b,c中任意两个就能推知第三个.
a^b = c 两边同时与a异或得: a ^ (a^b) = a^c 即 0^b = a^c 亦即 b = a^c
相关文章推荐
- Java 位运算(与、或、非、异或)
- 小强学Python+OpenCV之-1.4.4掩膜mask及位运算(与、或、非、异或)
- Java 位运算(移位、位与、或、异或、非)
- 按位与 按位或 按位异或(位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序)
- Java 位运算(移位、位与、或、异或、非) (转)
- Java 位运算(移位、位与、或、异或、非)
- Java中的位运算,包括移位、位与、或、异或、非
- php 位运算 按位与 按位或 按位异或
- Java 位运算(移位、位与、或、异或、非)
- hdoj 2095 find your present (2)【位运算,异或】
- Java 位运算(移位、位与、或、异或、非)
- POJ 1753 - 位运算(异或)+BFS / DFS+枚举
- 位运算 - 异或求和
- Java 位运算(移位、位与、或、异或、非)
- 【笔试题分享】异或与位运算的巧用
- Java 位运算(移位、位与、或、异或、非)
- Java中的位运算(移位、位与、或、异或、非)
- hdoj problem 1563 Find your present!(位运算(异或运算求特殊数))
- Java 位运算(移位、位与、或、异或、非)
- Java 位运算(移位、位与、或、异或、非)