17.4.6 乗除演算子
乗除演算子は、乗算(*)、除算(/)、および剰余算(%)を実行します。
(1) 形式
- 乗算式
式 * 式
- 除算式
式 / 式
- 剰余算式
式 % 式
(2) 説明
乗除演算子は、オペランドの通常の算術変換をします。変換結果のデータ型は、オペランドのデータ型になります。両方のオペランドが数値である必要があります。オペランドの片方または両方がstring型の場合は、結果がエラーとなります。
-
乗算演算子(*)は、2つのオペランドを乗算します。オペランドはinteger型でもfloat型でもよく、型が異なっていてもかまいません。
-
除算演算子(/)は、1つ目のオペランドを2つ目のオペランドで除算します。オペランドはinteger型でもfloat型でもよく、型が異なっていてもかまいません。0で除算した場合の結果は未定義となりますが、文法チェック時またはランタイム時にエラーが発行されます。また、両方のオペランドが正の値または符号なしのときは、結果は0に切り捨てられます。
-
剰余演算子(%)オペランドは、整数でなければなりません。評価結果は、1つ目のオペランドが2つ目のオペランドで除算したあとの剰余になりますが、割り切れなければ評価結果は次の規則によって決まります。
-
右オペランドが0の場合は、結果は未定義となります。
-
両方のオペランドが正の値または符号なしの場合は、結果は正の値となります。
-
(3) 記述例
MAIN { if (sloop_cnt > 10) AIT_Sleep(SLEEP_TIME / 2); else AIT_Sleep(SLEEP_TIME * 2); endif; }
(4) 備考
-
乗除演算子による変換処理は、オーバーフローやアンダーフロー状態に対応できないため、乗除演算子の変換結果がオペランドの型で示されない場合は、情報が欠落するおそれがあります。
-
ランタイム時に0で除算すると、プログラムはERRORセクションに制御を移します。