記事内に広告が含まれています

電子工作で便利に使えるArduino言語の算術演算子

Arduino

算術演算子とは

Arduinoの算術演算子は、プログラム内で数値の計算を行うために使用されます。今回はArduinoで一般的に使用される算術演算子とその説明を整理してみました。

基本的な算術演算子

演算子機能結果
+加算5 + 38
減算5 – 32
*乗算5 * 315
/除算6 / 23
%剰余(余り)7 % 21

注意点

  • 整数除算整数同士の除算では、小数点以下は切り捨てられます。例えば、`7 / 2` は `3`(3.5 ではなく)。
  • 浮動小数点数:小数点を含む計算を行う場合は、少なくとも一方のオペランドを `float` 型にする(例:`7.0 / 2` は `3.5`)。
  • 剰余演算`%` は整数型でのみ使用可能。負の数の場合、結果の符号は左オペランドに依存します(例:`-7 % 2` は `-1`)。
  • オーバーフロー:Arduinoの整数型(`int` は通常 16 ビット)の範囲を超えると、値がオーバーフローします(例:`32767 + 1` は `-32768` になる)。

複合代入演算子

算術演算と代入を組み合わせた演算子もよく使われます。

演算子機能等価式
+=加算して代入x += 5x = x + 5
-=減算して代入x -= 3x = x – 3
*=乗算して代入x *= 2x = x * 2
/=除算して代入x /= 2x = x / 2
%=剰余を計算して代入x %= 3x = 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公式リファレンス]を参照。

コメント

タイトルとURLをコピーしました