^ (按位异或)

来自Microduino Wikipedia
Write_data@qq.com讨论 | 贡献2016年3月28日 (一) 09:23的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
  • 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);
}


[返回Arduino语法手册]