Arduino 中的按位 XOR
arduinoarduino boardsarduino idearduino programming language
与其他按位运算符一样,按位 XOR 也分别应用于相应位。
运算符为 ^,语法为,
a ^ b
其中 a 和 b 是要进行 XOR 的两个数字。
XOR 的真值表如下所示 −
P | Q | P^Q |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
如您所见,仅当两个位不同时,XOR 运算符才会返回 1。
如果您执行 10 ^ 3,这是在位级别发生的计算(假设您的板使用 16 位表示整数)
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 10 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 3 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 10 ^ 3 = 9 |
示例
让我们在串行监视器上验证这一点。代码如下 −
void setup() { // 将您的设置代码放在此处,运行一次: Serial.begin(9600); Serial.println(); int a = 10; int b = 3; Serial.println(a ^ b); } void loop() { // 将您的主代码放在此处,以便重复运行: }
输出
串行监视器输出如下所示 −
如您所见,输出完全符合预期。