Arduino 中按位异或
就像其他按位运算符一样,按位异或也单独对相应位进行运算。
运算符是 ^,语法为:
a ^ b
其中 a 和 b 是要进行异或运算的两个数。
下面给出异或的真值表 −
| P | Q | P^Q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
正如你所见,异或运算符仅在两个位不同时返回 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() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println();
int a = 10;
int b = 3;
Serial.println(a ^ b);
}
void loop() {
// put your main code here, to run repeatedly:
}输出
串行监视器输出如下 −

正如你所见,输出完全符合预期。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP