算術演算子とは
数値計算は日常生活でもよく使うので、算術演算子は比較的理解しやすいと思います。
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 | 
また、変数の値を1増やしたり、1減らしたりする場合は、「++」や「--」
サンプルコード
簡単なサンプルコードですが、上記の内容をコードで記述すると以下のようになります。
Serial.println()を使用することでArduinoIDEのシリアルモニタに計算結果が表示されます。
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公式リファレンス]の Arithmetic Operators , Compound Operatorsを参照。
 
 

コメント