Arduino 中的按位與和或


按位與/或表示在位級分別執行與/或運算。每個數字都有其二進位制表示形式。當您對一個數字與另一個數字執行按位與運算時,對這兩個數字的對應位執行與運算。因此,數字 1 的最低有效位與數字 2 的最低有效位進行與運算,依此類推。

Arduino 中的按位與運算子為 &,按位或運算子為 |。

語法

a & b

用於與運算。

a | b

用於或運算。

與運算的真值表為

PQp & q
000
010
100
111

或運算的真值表為:

PQp & q
000
011
101
111

由於這些是按位運算子,因此我們需要對每一位執行此操作。

例如,如果我需要執行 10 & 3,則操作如下所示

1010
10
0011
3
0010
10 & 3 = 2

如您所見,對每一位分別執行與運算。

類似地,10 | 3 的操作如下所示:

1010
10
0011
3
1011
10 | 3 = 2

請注意,這實際上適用於數字的所有位(即使是前導 0)。因此,如果您的開發板使用 16 位來表示整數,則實際操作(對於 10 & 3)如下所示:

0000000000001010
10
0000000000000011
3
0000000000000000
10 & 3 = 2

| 運算子也適用相同規則。

示例

讓我們透過 Arduino 進行驗證。程式碼如下所示:

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);
   Serial.println(a | 3);
}
void loop() {
   // put your main code here, to run repeatedly:
}

輸出

序列埠監視器輸出如下所示:

如您所見,輸出完全符合我們的預期。

更新於:2021 年 5 月 29 日

1K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告