{{htmlmetatags>metatag-robots=()
metatag-title=(Operators | ugBASIC User Manual)
metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum)
metatag-description=(An isomorphic language for retrocomputers)
metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png)
metatag-og:title=(Operators | ugBASIC User Manual)
metatag-og:description=(An isomorphic language for retrocomputers)
}}
====== ugBASIC User Manual ======
===== Operators =====
==== Available operators ====
ugBASIC gives the following operators:
^ Operator ^ Description ^ Example ^
| ''#'' | Constant conversion | ''#42'' |
| ''+'' | Arithmetic sum | ''42 + 2'' |
| ''++'' | Arithmetic increment | ''a++'' |
| ''+'' | String concatenation | ''"xx" + "yy""'' |
| ''-'' | Arithmetic subtraction | ''42 - 2'' |
| ''-'' | Arithmetic negation | ''-42'' |
| ''--'' | Arithmetic decrement | ''a--'' |
| ''*'' | Arithmetic multiplcation | ''42 * 2'' |
| ''**'' | Arithmetic multiplcation (power of 2) | ''42 * 8'' |
| ''^'' | Arithmetic power | ''42 ^ 2'' |
| ''/'' | Arithmetic division | ''42 / 10'' |
| ''\'' | Arithmetic division (power of 2) | ''42 \ 4'' |
| ''mod'' | Arithmetic modulo | ''42 MOD 2'' |
| ''='' | Assign operator (by copy) | ''a = 42'' |
| '':='' | Assign operator (by reference) | ''a := b'' |
| ''='' | Equal comparison | ''a = b'' |
| ''=='' | Equal comparison | ''a = b'' |
| ''<>'' | Not equal comparison | ''a <> b'' |
| ''>'' | Greater than comparison | ''a > b'' |
| ''>='' | Greater than or equal to comparison | ''a >= b'' |
| ''<'' | Less than comparison | ''a < b'' |
| ''<='' | Less than or equal to comparison | ''a <= b'' |
| ''AND'' | Logical / bitwise AND | ''a AND b'' |
| ''OR'' | Logical / bitwise OR | ''a OR b'' |
| ''XOR'' | Logical / bitwise XOR | ''a XOR b'' |
| ''NOT'' | Logical / bitwise NOT | ''NOT a'' |
Operands for the arithmetic operators can be any numeric expressions,
or variables. The ''+'' operator is overloaded, because it has also
the meaning of "sum" (concatenate) strings. In this case both operands must
be strings.
Comparison operators can be used with any numeric expressions.
A relational expression evaluates to true (-1 / 255) when the comparison
is satisfied, and 0 when it does not. Comparison operators can be used with strings
too, and comparison is lexicographic.
Finally, logical operators can operate on all numeric data types.