# CLEM operators #

This page lists the available CLEM language operators\.

<!-- <table "summary="CLEM language operators" id="operator_precedence__table_gt3_lwz_ddb" class="defaultstyle" "> -->

CLEM language operators  

Table 1\. CLEM language operators

| Operation         | Comments                                                                                                 | Precedence (see next section) |
| ----------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------- |
| `or`              | Used between two CLEM expressions\. Returns a value of true if either is true or if both are true\.      | 10                            |
| `and`             | Used between two CLEM expressions\. Returns a value of true if both are true\.                           | 9                             |
| `=`               | Used between any two comparable items\. Returns true if ITEM1 is equal to ITEM2\.                        | 7                             |
| `==`              | Identical to `=`\.                                                                                       | 7                             |
| `/=`              | Used between any two comparable items\. Returns true if ITEM1 is *not* equal to ITEM2\.                  | 7                             |
| `/==`             | Identical to `/=`\.                                                                                      | 7                             |
| `>`            | Used between any two comparable items\. Returns true if ITEM1 is strictly greater than ITEM2\.           | 6                             |
| `>=`           | Used between any two comparable items\. Returns true if ITEM1 is greater than or equal to ITEM2\.        | 6                             |
| `<`            | Used between any two comparable items\. Returns true if ITEM1 is strictly less than ITEM2                | 6                             |
| `<=`           | Used between any two comparable items\. Returns true if ITEM1 is less than or equal to ITEM2\.           | 6                             |
| `&&=_0`           | Used between two integers\. Equivalent to the Boolean expression INT1 && INT2 = 0\.                      | 6                             |
| `&&/=_0`          | Used between two integers\. Equivalent to the Boolean expression INT1 && INT2 /= 0\.                     | 6                             |
| `+`               | Adds two numbers: NUM1 \+ NUM2\.                                                                         | 5                             |
| `><`        | Concatenates two strings; for example, `STRING1 >< STRING2`\.                                      | 5                             |
| `-`               | Subtracts one number from another: NUM1 \- NUM2\. Can also be used in front of a number: \- NUM\.        | 5                             |
| `*`               | Used to multiply two numbers: NUM1 \* NUM2\.                                                             | 4                             |
| `&&`              | Used between two integers\. The result is the bitwise 'and' of the integers INT1 and INT2\.              | 4                             |
| `&&~~`            | Used between two integers\. The result is the bitwise 'and' of INT1 and the bitwise complement of INT2\. | 4                             |
| `||`              | Used between two integers\. The result is the bitwise 'inclusive or' of INT1 and INT2\.                  | 4                             |
| `~~`              | Used in front of an integer\. Produces the bitwise complement of INT\.                                   | 4                             |
| `||/&`            | Used between two integers\. The result is the bitwise 'exclusive or' of INT1 and INT2\.                  | 4                             |
| `INT1 << N` | Used between two integers\. Produces the bit pattern of INT shifted left by N positions\.                | 4                             |
| `INT1 >> N` | Used between two integers\. Produces the bit pattern of INT shifted right by N positions\.               | 4                             |
| `/`               | Used to divide one number by another: NUM1 / NUM2\.                                                      | 4                             |
| `**`              | Used between two numbers: BASE \*\* POWER\. Returns BASE raised to the power POWER\.                     | 3                             |
| `rem`             | Used between two integers: INT1 rem INT2\. Returns the remainder, INT1 \- (INT1 div INT2) \* INT2\.      | 2                             |
| `div`             | Used between two integers: INT1 div INT2\. Performs integer division\.                                   | 2                             |

<!-- </table "summary="CLEM language operators" id="operator_precedence__table_gt3_lwz_ddb" class="defaultstyle" "> -->

<!-- </article "role="article" "> -->