Difference between revisions of "Language Reference/Built-in entities/Operators"
From wiki.visual-prolog.com
 (→Integral division:  Changed description)  | 
				m (line)  | 
				||
| Line 87: | Line 87: | ||
| <vp>-1</vp>  | | <vp>-1</vp>  | ||
|}  | |}  | ||
<noinclude>[[Category:Language Reference Subarticle]]</noinclude>  | <noinclude>[[Category:Language Reference Subarticle]]</noinclude>  | ||
Revision as of 16:44, 25 October 2012
See also Operators.
| Operator | Description | Remark | 
|---|---|---|
| ^ | Power operation | Not defined for 64 bit integral numbers | 
| - (unary) | Unary minus | |
| *, / | Multiplication and division | |
| div, mod | The quotient and remainder of an integral division rounded towards minus infinity | Not defined for real's | 
| quot, rem | The quotient and remainder of an integral division rounded towards zero | Not defined for real's | 
| +, - | Addition and subtraction | 
- The operators are listed from highest to lowest precedence
 - All division and multiplication operators have same precedence.
 - The the power operator is right associative
 - All other operators are left associative.
 
All binary operators takes two arguments of same base type and returns a value of that base type. Operands and result may be converted using ordinary subtype rules.
Integral division
div and quot are different integral division operators.
- div rounds towards minus infinite. mod is the remainder corresponding to div.
 - quot rounds towards zero. rem is the remainder corresponding to quot.
 
For positive results div and quot have same functionality.
The difference can be seen in this table:
| A | B | A div B | A mod B | A quot B | A rem B | 
| 15 | 7 | 2 | 1 | 2 | 1 | 
| -15 | 7 | -3 | 6 | -2 | -1 | 
| 15 | -7 | -3 | -6 | -2 | 1 | 
| -15 | -7 | 2 | -1 | 2 | -1 | 
