ラベル 算術演算子 の投稿を表示しています。 すべての投稿を表示
ラベル 算術演算子 の投稿を表示しています。 すべての投稿を表示

=(代入)

等号( = )の右側の値を、左側の変数に格納します。
C言語では、1つの等号を代入演算子と呼びます。
その意味は、数学で習う「等しい」とは異なります。
代入演算子は等号の右側の式や値を評価して、左側の変数に格納します。

[例]
整数を代入する例です。

int sensval;        //変数をsensvalという名で宣言
sensval = analogRead(0); //アナログピン0の値をsensvalに格納

[tips]
等号( = )の左側の変数は値を記憶できる必要があります。
値を記憶できるだけの大きさがない場合、記憶された値は間違ったものになります。

代入演算子( = )と2つの値を比べる時に使う比較演算子(==)を混同しないようにしましょう

%(剰余)

整数の割り算を行ったときの余りを返します。

[構文]
答 = 値1 % 値2;

[パラメータ]
値1:変数または定数
値2:変数または定数

[例]
x = 7 % 5   //xは2に
x = 9 % 5   //xは4に
x = 5 % 5   //xは0に


剰余演算子は配列の要素を循環的に使いたいときに便利です。
次の例は、配列の要素を1つずつ更新します。
10個目を更新したら、最初の要素へ戻ります。

int values[10];
int i = 0;

void setup()

void loop() {
 values[i] = analoglead(0);
 i = (i + 1) % 10;      //剰余演算子を使ってインデックスを計算
}

[tips]
剰余演算子は、浮動小数点(float)の値に対しては機能しません。

+-*/

これらの演算子は、2つの値の加算・減算・乗算・除算の結果を返します。
その動作はデータの型に従います、
たとえば9と4がint(整数)であるとき、9/4の答えは2となります。

これは、それぞれのデータ型に許されている値より大きな結果が得られたときに
オーバーフローが生じる事も意味します。
例えばint型の32,767に1を足すと、-32,768となります。

異なる型を組み合わせたときは、大きい方の型に基づいて計算されます。
また、一方の型がfloatかdoubleのときは、浮動小数点演算が行われます。

[構文]
答 = 値1 + 値2;
答 = 値1  - 値2;
答 = 値1  * 値2;
答 = 値1  / 値2;

[パラメータ]
値1:変数または定数
値2:変数または定数

[tips]
・通常、整数の定数はint型なので、オーバーフローに注意してください。
 たとえば、60*1000は-5536
・計算の結果を格納するのに十分な大きさを持つ型を選択しましょう。
・変数がひとまわりするポイントを知っておいてください。
 また正負を逆にした時の動作にも注意してください。
・分数が必要な時は、浮動小数点型の変数を使いますが、
 メモリサイズが大きく計算が遅いという欠点があります。
・キャスト演算子を使って、(int)myFloatのようにすると、
 その場で変数の型を変更出来ます。