在c语言异或运算符家族中,最常用的是某个异或运算符。
异或运算符是参与运算的两个值,如果两个对应位相同,则结果为0,否则为1。 即0^0=0、1^0=1、0^1=1、1^1=0
例如,10100001^00010001=10110000
0 ^0=0,0 ^1=1可以理解为0与任意数异或,结果=任意数
1 ^0=1,1 ^1=0可以理解为1与任意数异或,结果=任意数相反
任何异或都等于让自己为0
1 )异或可以用于反转特定位,如对数10100001的第一位和第二位。 可以用异或运算数和00000110。
10100001^00000110=10100111
以十六进制表示,0xA1 ^0x06=0xA7
(2)异或运算允许在不使用临时变量的情况下交换两个值。 例如,要交换两个整数a、b的值,请使用以下语句:
a=10100001,b=00000110
a=a^b; //a=10100111
b=b^a; //b=10100001
a=a^b; //a=00000110
)3)异或运算符的特征是,即使对数a相同的数b(a=a^b^b )进行两次异或,仍然是原来的值a。