PreviousNext
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.