^ (按位异或)
- Bitwise AND (&), Bitwise OR (|), Bitwise XOR (^)
按位异或(^)
C++中有一个不常见的操作符叫按位异或,也叫做XOR(通常读作”eks-or“)。按位异或操作符用‘^'表示。此操作符和按位或(|)很相似,区别是如果两个位都为1则结果为0:
0 0 1 1 运算元1 0 1 0 1 运算元2
0 1 1 0(运算元1 ^运算元2) - 返回的结果 按位异或的另一种解释是如果两个位值相同则结果为0,否则为1。
下面是一个简单的代码示例:
int x = 12; // 二进制: 1100 int y = 10; // 二进制: 1010 int z = x ^ y; // 二进制: 0110, 或十进制 6 // Blink_Pin_5 //演示“异或” void setup(){ DDRD = DDRD | B00100000; //设置数字脚5设置为输出 serial.begin(9600); } void loop () { PORTD = PORTD ^ B00100000; // 反转第5位(数字脚5),其他保持不变 delay(100); }