Arithmetic operators

[next] [tail] [up]

#### 12.8.1 Arithmetic operators

Arithmetic operators occur in arithmetic operations, i. e. in expressions that contain integers or reals. There are two kinds of operators: Binary and unary arithmetic operators. Binary operators are listed in table (12.2), unary operators are listed in table (12.3).

Table 12.2: Binary arithmetic operators

Operator | Operation
+ | Addition
- | Subtraction
* | Multiplication
** | Exponentiation
/ | Division
Div | Integer division
Mod | Remainder

With the exception of Div and Mod, which accept only integer expressions as operands, all operators accept real and integer expressions as operands.

Remark The exponentiation operator (**) is available for overloading (chapter 15, page 846), but is not defined on any of the standard Pascal types (floats and/or integers).

For binary operators, the result type will be integer if both operands are integer type expressions. If one of the operands is a real type expression, then the result is real.

As an exception, division (/) results always in real values.

Table 12.3: Unary arithmetic operators

Operator | Operation
+ | Sign identity
- | Sign inversion

For unary operators, the result type is always equal to the expression type. The division (/) and Mod operator will cause run-time errors if the second argument is zero.

The sign of the result of a Mod operator is the same as the sign of the left side operand of the Mod operator. In fact, the Mod operator is equivalent to the following operation:

I mod J = I - (I div J) * J

But it executes faster than the right hand side expression.

[next] [front] [up]