ВЫЧИСЛЕНИЕ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ
Командный интерпретатор в определенных случаях обеспечивает вычисление арифметических выражений (см. встроенную команду и подраздел "" ранее). Вычисление выполняется в длинных целых числах без проверки переполнения, хотя деление на 0 перехватывается и выдается соответствующее сообщение об ошибке. Операторы в следующем списке сгруппированы по уровням с одинаковым приоритетом. Уровни перечислены в порядке убывания приоритета.
- +
унарные минус и плюс
! ~
логическое и побитовое отрицание
**
возведение в степень
* / %
умножение, деление, получение остатка от деления
+ -
сложение, вычитание
<< >>
побитовый сдвиг влево и вправо
<= >= < >
сравнение
== !=
равенство и неравенство
&
побитовое И
^
побитовое исключающее ИЛИ
|
побитовое ИЛИ
&&
логическое И
логическое ИЛИ
выражение?выражение:выражение
условное вычисление
= *= /= %= += -=
присваивание
В качестве операндов можно использовать переменные командного интерпретатора; перед вычислением выполняется подстановка значений параметров. Значение параметра в арифметическом выражении приводится к длинному целому. Чтобы переменную командного интерпретатора можно было использовать в арифметических выражениях, ее атрибут integer устанавливать не обязательно.
Константы с начальным 0 интерпретируются как восьмеричные числа. Начальные 0x или 0X обозначают шестнадцатеричную константу. В остальных случаях числа имеют вид [основание#]n, где основание - десятичное число от 2 до 64, представляющее основание системы счисления, а n - число в этой системе счисления. Если основание не указано, используется основание 10. Цифры, большие 9, представляются строчными буквами, прописными буквами, символами _ и @, именно в таком порядке. Если основание меньше или равно 36, прописные и строчные буквы эквивалентны и используются для представления чисел от 10 до 35.
Операторы вычисляются в порядке приоритетов. Сначала вычисляются подвыражения в круглых скобках, которые позволяют переопределить представленные выше стандартные приоритеты операторов.