CLEM 運算子
CLEM 語言提供了下列運算子。
| 運算 | 備註(O) | 優先級(參閱下一節) |
|---|---|---|
or
|
在兩個 CLEM 表示式之間使用。如果其中一個表示式為 true 或兩個表示式同時為 true,則傳回 true 值。 | 10 |
and
|
在兩個 CLEM 表示式之間使用。如果兩個表示式同時為 true,則傳回 true 值。 | 9 |
=
|
用於任兩個可比較項目之間。若 ITEM1 等於 ITEMITEM2,則傳回值為 true。 | 7 |
==
|
與 = 相同。 |
7 |
/=
|
用於任兩個可比較項目之間。若 ITEM1 不等於 ITEM2,則傳回值為 true。 | 7 |
/==
|
與 /= 相同。 |
7 |
>
|
用於任兩個可比較項目之間。若 ITEM1 完全大於 ITEM2,則傳回值為 true。 | 6 |
>=
|
用於任兩個可比較項目之間。若 ITEM1 大於或等於 ITEM2,則傳回值為 true。 | 6 |
<
|
用於任兩個可比較項目之間。如果 ITEM1 嚴格少於 ITEM2,則傳回 true 值。 | 6 |
<=
|
用於任兩個可比較項目之間。若 ITEM1 小於或等於 ITEM2,則傳回值為 true。 | 6 |
&&=_0 |
用於兩個整數之間。相當於布林表示式 INT1 && INT2 = 0。 | 6 |
&&/=_0 |
用於兩個整數之間。相當於布林表示式 INT1 && INT2 /= 0。 | 6 |
+
|
將兩個數字相加:NUM1 + NUM2。 | 5 |
><
|
連結兩個字串,例如
字串1 ><字串2. |
5 |
-
|
將兩個數字相減:NUM1 - NUM2。也可以用在一個數字之前:- NUM。 | 5 |
*
|
用於將兩個數字相乘:NUM1 * NUM2。 | 4 |
&&
|
用於兩個整數之間。結果為整數 INT1 和 INT2 的位元 'and'。 | 4 |
&&~~ |
用於兩個整數之間。結果為 INT1 的位元 "and" 和 INT2 的位元補碼。 | 4 |
||
|
用於兩個整數之間。結果為 INT1 和 INT2 的位元 'inclusive or'。 | 4 |
~~ |
用於整數之前。生成整數的位元補碼。 | 4 |
||/&
|
用於兩個整數之間。結果為 INT1 和 INT2 的位元 'exclusive or'。 | 4 |
INT1 << N |
用於兩個整數之間。產生 INT 向左偏移 N 個位置的位元型樣。 | 4 |
INT1 >> N |
用於兩個整數之間。產生 INT 向右偏移 N 個位置的位元型樣。 | 4 |
/
|
用於將兩個數相除:NUM1 / NUM2。 | 4 |
**
|
用於兩個數字之間:BASE ** POWER。傳回 BASE 的 POWER 次冪。 | 3 |
rem
|
用於兩個整數之間:INT1 rem INT2。傳回餘數,INT1 - (INT1 div INT2) * INT2。 | 2 |
div
|
用於兩個整數之間:INT1 div INT2。執行整數除。 | 2 |
運算子優先級
優先級決定複式表示式(尤其是含有不止一個中置運算子且未加括號的表示式)的剖析順序。例如,
3 + 4 * 5
剖析為 3 + (4 * 5) 而不是 (3 + 4) * 5 ,因為相對優先級規定 * 應先於 + 剖析。CLEM 語言中的每個運算子均有一個與其關聯的優先級值。此值越大,運算子在剖析清單中的重要性越高,即它將先於優先級值比它大的其他運算子處理。