异或

 1 (1)使特定位翻转
 2 
 3   假设有01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行∧运算,即
 4 
 5   
 6 
 7 结果值的低4位正好是原数低4位的翻转。要使哪几位翻转就将与其∧运算的该几位置为1即可。这是因为原数中值为1的位与1进行∧运算得0,原数中的位值0与1进行∧运算的结果得1。
 8 
 9 
10 快速判断两个值是否相等
11 举例1: 判断两个整数a,b是否相等,则可通过下列语句实现:
12         return ((a ^ b)==0) 
13         
14         2.与0异或,保留原值。如012异或00=012.
15 3.交换两个值,不用临时变量。假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
16 a=a异或b;
17 b=b异或a;
18 a=a异或b;
19 
20 
21 1. a ⊕ a = 0
22 2. a ⊕ b = b ⊕ a
23 3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;
24 4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
25 5. a ⊕ b ⊕ a = b.
26 6.若x是二进制数0101,y是二进制数1011;
27 则x⊕y=1110
28 只有在两个比较的位不同时其结果是1,否则结果为0
29 即“两个输入相同时为0,不同则为1”!

 

上一篇:堆排序 GPLT L2-012 关于堆的判断


下一篇:[Linux] 012 文件搜索命令