异或,兄弟找一本入门书,哪怕是c/c++的,看一下关于位运算的东西,按位与 &  0&0=0 1&1=1 0&1=0 1&0=0
按位或 |  0|0=0 1|1=1 0|1=1 1|0=1
按位取反 ~ ~0=1 ~1=0
异或 ^    0^0=0 1^1=0 0^1=1 1^0=1

解决方案 »

  1.   

    按位异或运算符 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0 ^ 0 = 0,1 ^ 0 = 1,0 ^ 1 = 1,1 ^ 1 = 0例如: 00101010( ^ ) 00010111001111011按位异或可以用来使某些特定的位翻转,如对数11010110的第4、5翻转,可以将数与00011000进行按位异或运算。11010110( ^ ) 0001100011001110 2通过按位异或运算,可以实现两个值的交换,而不使用临时变量,例如交换两个整数a、b的值,可通过下列语句实现:a = 11010110,b = 01011001a = a ^ b; // a = 10001111b = b ^ a; // b = 11010110a = a ^ b; // a = 01011001