Rapid-Q Documentation by William Yu (c)1999 Appendix C: Операторы


Introduction to Операторы

Операторы выполняют математические или логические операции над величинами. Rapid-Q поддерживает как INFIX так и POSTFIX (RPN) выражения. (They are usually encompassed by an expression. For example, 2 * 8 is a valid expression, and * is an operator operating on values 2 and 8. Rapid-Q can evaluate both INFIX and POSTFIX (RPN) expressions, but if you want to evaluate POSTFIX expressions, you'll need to note the special cases.)

Арифметические Операторы
Rapid-Q имеет таблицу приоритетов операторов. Операторы имеющие более высокий приоритет выполняются раньше операторов с низким приоритетом. Операторы, имеющие одинаковый приоритет, выполняются в последовательности слева направо. Выражения, заключенные в скобки автоматически получают более высокий приоритет.
ОперацияОператорПриоритетОписание
String index[]1 Возвращает символ из строки
т.е. s$[2]
второй символ из строки s$
Возведение в степень^1 Вычисляет степень числа
т.е. 2^6
это 2 в степени 6
Отрицание-1 Меняет знак числа
т.е. -99
это -99
Умножение*2 Умножение 2 чисел
т.е. 2*6
это 2 умноженное на 6
Деление чисел с плавающей точкой/2 Деление 2-x чисел с плавающей точкой
т.е. 6.5/2.6
is 6.5 деленное by 2.6
Деление целых чисел (Integer Division)\2 Деление 2 целых чисел
Перед выполнением операции целочисленного деления операнды окргляются до целых. Результат обрезается до целой величины.
т.е. 6\2
это 6 деленное на 2
Побитовый сдвиг влево (Left Bit Shift)SHL2 Сдвигает биты влево на заданную величину
т.е. 10 SHL 2
это число 10 биты которого были сдвинуты на 2 позиции влево
Побитовый сдвиг вправо (Right Bit Shift)SHR2 Сдвигает биты вправо на заданную величину
т.е. 10 SHR 2
это число 10 биты которого были сдвинуты на 2 позиции вправо
Остаток от деления (Modulus/Remainder)MOD3 Возвращает остаток от деления
т.е. 15 MOD 10
это 15/10 чей остаток равен 5
Inverse ModulusINV3 Возвращает the inverse of a number in modulus
т.е. 3 INV 26
The inverse of 3 is 9 in 1 (MOD 26)
Сложение+4 Складывает 2 операнда (строки в том счисле)
т.е. 3+6
это 3 плюс 6 = 9
т.е. "hi"+"world"
это "world" добавленное к "hi" = "hiworld"
Сложение&4 То же самое, что '+' добавлено для совместимости с другими языками Basic , например VB (Visual basic).
Вычитание (Subtraction)-4 Вычитает два операнда (в том числе строки)
т.е. 6-3
это 6 минус 3 = 3
т.е. "jello"-"l"
это "jello" минус все вхождения "l" = "jeo"


Операторы отношения
Операторы отношения используются для сравнения двух величин. Результат этой операции или истина (не ноль) или ложь (ноль) ("true" (nonzero) or "false" (zero)).
ОтношениеOperatorPrecedenceDescription
Equality=5 Tests for equality between 2 operands (strings included)
т.е. 2=2
if 2 equals 2 then "true" else "false"
Inequality<>5 Tests for inequality between 2 operands (strings included)
т.е. "hello"<>"world"
if "hello" is not equal to "world" then "true" else "false"
Less than<5 Tests if operand is less than another (strings included)
т.е. 2<10
if 2 is less than 10 then "true" else "false"
Greater than>5 Tests if operand is greater than another (strings included)
т.е. "z">"a"
if "z" is greater than "a" then "true" else "false"
Less than or equal<=5 Tests if operand is less than or equal to another (strings included)
т.е. 2<=10
if 2 is less than or equal to 10 then "true" else "false"
Greater than or equal>=5 Tests if operand is greater than or equal to another (strings included)
т.е. 20>=10
if 20 is greater than or equal to 10 then "true" else "false"


Logical Операторы
Logical Операторы perform tests on multiple relations, bit manipulation, or Boolean operations and return a true (nonzero) or false (zero) value to be used in making a decision.
OperationOperatorPrecedenceDescription
Logical complementNOT6 Возвращает the complement (inverted bits)
т.е. NOT -1
-1 has all bits set, NOT -1 inverts all bits
ConjunctionAND7 Compare corresponding bits in 2 operands and sets the corresponding bit in the result to 1 if both bits are 1.
т.е. 5 AND 3
5 AND 3 = 1 since their first bits are set
Disjunction (inclusive "or")OR8 Compares corresponding bits in 2 operands and sets bit to 1 if either one has a corresponding bit set.
т.е. 5 OR 3
5 OR 3 = 7 since bits overlap
Exclusive "or"XOR9 Compares corresponding bits in 2 operands and sets bit to 1 if only one of the operands has a corresponding bit set.
т.е. 5 XOR 3
5 XOR 3 = 6 since one bit overlaps


INFIX/POSTFIX notation
Expressions, in most languages, are expressed in INFIX notation. Rapid-Q prefers INFIX notation, but can also handle POSTFIX notation with a few special cases.
      Пример INFIX expression:
          A = 4 * 7 + (4 - 1)^6
INFIX notation is easier to use and understand than POSTFIX notation. In fact, Rapid-Q's POSTFIX notation is a simple side effect, and was not intentional. Please avoid using POSTFIX if possible.
      Пример POSTFIX expression:
          A = (4) (7) (*) (4) (1) (-) (6) (^) (+)
The 2 expressions should evaluate to 757. As you'll note, when dealing with POSTFIX notation, make sure all operands and Операторы are enclosed in braces. When dealing with negation, you'll have to do this instead:
      Пример POSTFIX expression w/negation:
          A = (5) (0-5) (-)
Notice that (0-5) and (-5) return different results.


Содержание Up Internal Definitions ->