1. 程式人生 > >異或運算子(^)

異或運算子(^)

關於異或運算(^),談談自己淺顯的認識:
0異或任何非零數n結果為n,n^n=0。
交換律:a ^ b = b ^ a,
結合律:a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c,
d = a ^ b ^ c 可以推出 a = d ^ b ^ c,
自反性:a ^ b ^ a = b。
問題:有一組數,從1到n依次遞增,其中有且只有一個數重複,找出那個數。
解:
設重複的數為n,
令S=1^2 ^3 ^n ··· ^1000,則1 ^2 ^3 ^n ^ n··· ^ 1000=S ^n,
∴(1^2 ^3 ^n ^n··· ^1000) ^(1 ^2 ^3 ^ n··· ^1000)=(S ^n) ^S= n,
重複的數為n。