知っておくべき演算子は4種類
変数は、それだけあってもただの入れ物にしかなりません。実際にプログラムの中では変数同士または変数と定数の間で演算(計算)をさせることが必要になります。この演算を指示するのに使うのが演算子と呼ばれる記号です。
以下、マジカルボックスのプログラムで使用するものを順に説明します。全部で4種類あります。
四則演算
加減算と乗除算です。
+ | 加算 |
- | 減算 |
* | 乗算。算数では×記号を使いますが、C言語では*(アスタリスク)を使います。ただし、今回マジカルボックスでは使用していません |
/ | 除算。本当は使いたくなかったのですが、やむをえず1カ所だけ使っています(プチ解説参照) |
78K0S/KA1+のような小規模のマイコンは、一般に乗除算をする回路を搭載していません。加算回路のみで。減算は、先に説明した2の補数を求めて加算することで実現しています。
このため、このようなマイコンでは乗除算は純粋にソフトウェアで処理します。普通はコンパイラが演算ライブラリとして持っていて、乗除算の使用を判断してライブラリから必要な処理ルーチンを実行プログラムに内蔵してくれます。
ソフトウェアでの処理になるので、どうしても実効速度が遅い(処理が重いという表現がよく使われる)という問題があります。
さらに、ライブラリは汎用的に使えるようにできているので、実行プログラムのサイズを大きくしてしまいがちです。
このようなこともあり、組込みソフトウェア、特に小さなマイコンを使った小規模なものでは、プログラミング時にできるだけ乗除算を使わなくて済むように工夫するのが一般的です。
代入
定数や演算結果を変数に代入するときは、=を使います。以下の例は、変数tempに5という値を代入することを意味します。
char temp; temp = 5;
変数tempの値を+1したいときは、以下のように記述します。
temp = temp + 1;
記号は同じでも、算数で習う「等式」とは意味が異なりますので注意してください。
比較
2つの値を比較するときに使います。これはこのあとに勉強する、ループ文や条件判断文で使用します。
<、<= | 大小比較 |
== | 等しいかどうか |
!= | 等しくないかどうか |
これらを使って、以下のように表現します。
x < y xがyよりも小さいとき、この条件が成立します x <= y xがyよりも小さいか、等しいとき、この条件が成立します。 x == y xとyが等しいとき、この条件が成立します。 x != y xとyが等しくないとき、この条件が成立します。
さらに具体的な使用例は、この次の回以降に説明するループや条件判断のところで説明します。
ついでに覚えておこう
<、<=には、向きが逆の演算子もあります。つまり>と>=です。それぞれ以下のように動作をします。
x > y xがyよりも大きいとき、この条件が成立します x >= y xがyよりも大きいか、等しいとき、この条件が成立します。