算術演算子とは
Arduinoの算術演算子は、プログラム内で数値の計算を行うために使用されます。今回はArduinoで一般的に使用される算術演算子とその説明を整理してみました。
基本的な算術演算子
演算子 | 機能 | 例 | 結果 |
---|---|---|---|
+ | 加算 | 5 + 3 | 8 |
– | 減算 | 5 – 3 | 2 |
* | 乗算 | 5 * 3 | 15 |
/ | 除算 | 6 / 2 | 3 |
% | 剰余(余り) | 7 % 2 | 1 |
注意点
- 整数除算:整数同士の除算では、小数点以下は切り捨てられます。例えば、`7 / 2` は `3`(3.5 ではなく)。
- 浮動小数点数:小数点を含む計算を行う場合は、少なくとも一方のオペランドを `float` 型にする(例:`7.0 / 2` は `3.5`)。
- 剰余演算:`%` は整数型でのみ使用可能。負の数の場合、結果の符号は左オペランドに依存します(例:`-7 % 2` は `-1`)。
- オーバーフロー:Arduinoの整数型(`int` は通常 16 ビット)の範囲を超えると、値がオーバーフローします(例:`32767 + 1` は `-32768` になる)。
複合代入演算子
算術演算と代入を組み合わせた演算子もよく使われます。
演算子 | 機能 | 例 | 等価式 |
---|---|---|---|
+= | 加算して代入 | x += 5 | x = x + 5 |
-= | 減算して代入 | x -= 3 | x = x – 3 |
*= | 乗算して代入 | x *= 2 | x = x * 2 |
/= | 除算して代入 | x /= 2 | x = x / 2 |
%= | 剰余を計算して代入 | x %= 3 | x = x % 3 |
サンプルコード
void setup() { Serial.begin(9600); int a = 10; int b = 3; Serial.println(a + b); // 13(加算) Serial.println(a - b); // 7(減算) Serial.println(a * b); // 30(乗算) Serial.println(a / b); // 3(除算、整数切り捨て) Serial.println(a % b); // 1(剰余) a += 5; // a = a + 5 Serial.println(a); // 15 } void loop() {}
応用例
- センサー値のスケーリング:アナタログセンサーの値(0-1023)を別の範囲(例:0-100)に変換する際、乗算や除算を使用。
int sensorValue = analogRead(A0); // 0-1023
int scaledValue = (sensorValue * 100) / 1023; // 0-100にスケーリング
- カウンター:`+=` や `-=` を使ってループ内で値を増減。
参考情報
- 演算子の優先順位:`*` と `/` は `+` と `-` より先に評価されます。必要に応じて括弧 `()` を使って優先順位を明示する方が安全です。
- 詳細は [Arduino公式リファレンス]を参照。
コメント