算術演算子とは
数値計算は日常生活でもよく使うので、算術演算子は比較的理解しやすいと思います。
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を参照。
コメント