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