# Операторы FZLang поддерживает арифметические, логические и унарные операции. Во время работы бинарные операции достают со стека два значения, и обратно кладут результат на стек. Унарные операции достают одно значение со стека, а затем кладут результат обратно на стек. ## Арифметические операции | Операция | Допустимые типы | Описание | | -------- | --------------- | -------- | | `N + N` | *все числовые* | Сложение двух операндов | | `N - N` | *все числовые* | Вычитание правого операнда из левого | | `N * N` | *все числовые* | Переменожение двух операндов | | `N / N` | *все числовые* | Деление левого операнда на правый | | `N % N` | *все числовые* | Получение остатка от деления левого операнда на правый | | `N ^ N` | *все числовые* | Возведение левого операнда в степень правого | | `-N` | *все числовые* | Инверсия операнда | ## Операции сравнения | Операция | Допустимые типы | Описание | | -------- | --------------- | -------- | | `N == N` | *все числовые*, булевы, объекты, строки | Сравнить равенство операндов | | `N != N` | *все числовые*, булевы, объекты, строки | Сравнить неравенство операндов | | `N > N` | *все числовые* | Проверить, что левый операнд больше правого | | `N >= N` | *все числовые* | Проверить, что левый операнд больше или равен правому | | `N < N` | *все числовые* | Проверить, что левый операнд меньше правого | | `N <= N` | *все числовые* | Проверить, что левый операнд меньше или равен правому | | `!N` | булевы | Инвертировать операнд | > Важно: > В случае сравнения объектов (`==`, `!=`), сравниваются адреса, а не значения! ## Логические операции | Операция | Допустимые типы | Описание | | -------- | --------------- | -------- | | `N && N` | булевы | Логическое **И** двух операндов | | `N || N` | булевы | Логическое **ИЛИ** двух операндов |