在 Arduino(基於 C/C++ 語法)程式中,運算子(Operators)是控制資料計算與邏輯判斷的核心。
以下是 Arduino 中最常使用的運算子分類總整理:
1. 算術運算子 (Arithmetic Operators)
用於數學計算。
• + 加法
• - 減法
• * 乘法
• / 除法(注意:整數相除會無條件捨去小數點)
• % 取餘數 / 模數(例如 5 % 2 結果為 1,常用於計時器或循環計數)
2. 比較/關係運算子 (Comparison Operators)
用於條件判斷(如 if 敘述),回傳結果為 true(真)或 false(偽)。
• == 等於(新手最常與單個 = 賦值搞混)
• != 不等於
• < 小於
• > 大於
• <= 小於或等於
• >= 大於或等於
3. 邏輯運算子 (Boolean Operators)
用於組合多個條件判斷。
• && 邏輯與 (AND) ── 兩邊條件都成立才為真。
• || 邏輯或 (OR) ── 兩邊條件只要有一個成立就為真。
• ! 邏輯非 (NOT) ── 反轉真假值(把 true 變 false,false 變 true)。
4. 複合指定運算子 (Compound Assignment Operators)
簡化變數自身運算並重新賦值的語法,讓程式碼更精簡。
• = 指定 ── 將右邊的值給左邊的變數(如 x = 5;)。
• ++ 遞增 ── 變數加 1(如 x++; 等同於 x = x + 1;)。
• -- 遞減 ── 變數減 1(如 x--;)。
• += 加法指定 ── 如 x += 5;(等同於 x = x + 5;)。
• -= 減法指定 ── 如 x -= 3;。
• *= 乘法指定 ── 如 x *= 2;。
• /= 除法指定 ── 如 x /= 2;。
5. 位元運算子 (Bitwise Operators)
在硬體微控制器(MCU)開發中非常重要,常用於設定暫存器(Register)、控制特定數位腳位(Pins)狀態或解析感測器原始資料。
• & 位元與 (Bitwise AND) ── 常用於「遮罩」以取出特定的位元。
• | 位元或 (Bitwise OR) ── 常用於將特定位元設定為 1。
• ^ 位元互斥或 (Bitwise XOR) ── 常用於翻轉位元狀態。
• ~ 位元非 (Bitwise NOT) ── 反轉所有位元(0變1,1變0)。
• << 左移 ── 將位元向左移動(相當於乘以 2 的次方)。
• >> 右移 ── 將位元向右移動(相當於除以 2 的次方)。
如果你正在開發特定的功能,我可以為你說明這些運算子的實際應用。你想了解:
• == 與 = 在 if 判斷式中寫錯會發生什麼慘劇?
• 如何用 位元運算子 (<<, |, &) 來快速控制多個 LED 或讀取暫存器?
• 自增運算子前置與後置 (++x 與 x++) 的差別?