Help > BASICS > Operations
Operations

Operations are generally divided in two main groups: operations with numbers, and operations with text.

Operations are performed by considering their level of precedence. Same level operations are executed sequentially in the order they appear in the expression.

Comparisons work with any data type. When performed on text arguments, the operation is performed by comparing the ASCII codes in each argument sequentially.

Some operations have dual function depending on the type of the arguments they work with. The operator “\” for example will perform integer division when working with integer numbers. The same operator however can be used to round a real number:

x = 2.75 \ 1               ‘ this is equivalent to x = 3

Arithmetic and logic operations

 Operation Argument type Description + any Performs addition with numbers Texts are concatenated - numeric Subtraction * numeric Multiplication / numeric Division \ numeric Integer division with integer numbers With real numbers the result is rounded to the nearest integer number \\ numeric Modulo operation with integer numbers With real numbers the result is only the fraction after the decimal point ^ numeric Exponentiation and integer only Bitwise AND or integer only Bitwise OR xor integer only Bitwise Exclusive OR not numeric The function is 1 if the argument is 0, and 0 if the argument is not 0 ~ numeric Bitwise negation with integer numbers With real numbers only the sign of the number is inverted << integer only Bit shift left >> integer only Bit shift right ++ numeric Increment by 1 -- numeric Decrement by 1

The “++” and “--“ operations deserve a few extra words. These two work with numeric variables only, and immediately precede or follow in the source the variable name, on which will perform increment by 1 or decrement by 1, respectively.

When preceding the variable (as in “++a”) the operation is performed before the value from the variable is taken.

Trailing the variable (as in “a++”) means the variable value modified after it was taken in the statement.

Comparison operations

 Operation Description == Returns 1 if the two arguments are equal <> Returns 1 if the two arguments are different < Returns 1 if argument 1 is smaller than argument 2 <= Returns 1 if argument 1 is smaller or equal than argument 2 >= Returns 1 if argument 1 is greater or equal than argument 2 > Returns 1 if argument 1 is greater than argument 2

By their level of precedence all operations are grouped in this way:

 Operation Level ++   -- highest ~   not ^ <<  >> *   /   \   \\ +   - ==   <>   <   <=   >=   > and   or   xor lowest

The order of execution the operations can be changed if necessary, by enclosing in ( brackets ) the needed sections in an expression.