Операции |
Компилятор арифметических выражений поддерживает следующие группы операций:
математические операции;
логические операции;
побитовые операции;
инкрементальные операции.
Математические операции. Все операции имеют по два операнда.
Операция |
Типы операндов |
Тип результата |
Назначение |
+ |
Все кроме boolean |
Тип операндов |
Для чисел - сложение, для строк - конкатенация |
- |
Все кроме boolean и string |
Тип операндов |
Вычитание |
* |
Целые и вещественные |
Тип операндов |
Умножение |
/ |
Целые и вещественные |
Вещественный |
Деление |
** |
Целые и вещественные |
Тип операндов |
Возведение в степень |
DIV |
Целые |
Целый |
Деление нацело |
MOD |
Целые |
Целый |
Остаток |
Логические операции. Все операции кроме Not имеют по два операнда. Операция Not имеет один операнд.
Операция |
Типы операндов |
Тип результата |
Назначение |
Not |
boolean |
boolean |
Отрицание |
Or |
boolean |
boolean |
ИЛИ |
And |
boolean |
boolean |
И |
Xor |
boolean |
boolean |
Исключающее ИЛИ |
= |
Любые |
boolean |
Равно |
<> |
Любые |
boolean |
Неравно |
> |
Любые |
boolean |
Больше |
< |
Любые |
boolean |
Меньше |
>= |
Любые |
boolean |
Больше или равно |
<= |
Любые |
boolean |
Меньше или равно |
Побитовые операции. Все операции имеют по два операнда.
Операция |
Типы операндов |
Тип результата |
Назначение |
Not |
Целые |
Целый |
Отрицание |
Or |
Целые |
Целый |
ИЛИ |
And |
Целые |
Целый |
И |
Xor |
Целые |
Целый |
Исключающее ИЛИ |
Shr |
Целые |
Целый |
Сдвиг вправо |
Shl |
Целые |
Целый |
Сдвиг влево |
Инкрементальные операции (доступны начиная с Атлантис 5.3.09). Все операции имеют по одному операнду.
Операция |
Тип операнда |
Тип результата |
Назначение |
++<операнд> |
Целый |
Тип операнда |
Прединкремент. Увеличивает значение операнда на 1. Возвращает копию измененного значения операнда. |
<операнд>++ |
Целый |
Тип операнда |
Постинкремент. Увеличивает значение операнда на 1. Возвращает копию значения операнда до изменения. |
--<операнд> |
Целый |
Тип операнда |
Предекремент. Уменьшает значение операнда на 1. Возвращает копию измененного значения операнда. |
<операнд>-- |
Целый |
Тип операнда |
Постдекремент. Уменьшает значение операнда на 1. Возвращает копию значения операнда до изменения. |
Ниже приведен приоритет операций в порядке убывания:
not, ++, --;
*, /, div, mod, shr, shl;
+, -;
=, <>, >, <, >=, <=;
and, or, xor.
Пример 1. Прединкремент
Message(++i);
действует аналогично коду:
Message(i + 1); i := i + 1;
Пример 2. Постинкремент
Message(i++);
действует аналогично коду:
Message(i); i := i + 1;
Пример 3. Предекремент
Message(--i);
действует аналогично коду:
Message(i - 1); i := i - 1;
Пример 4. Постдекремент
Message(i--);
действует аналогично коду:
Message(i); i := i - 1;
Инкрементальные операции доступны начиная с Атлантис 5.3.09.