A TTCN-3 nyelvben az alábbi operátorok léteznek.
| Operátor | Alkalmazhatóság | Eredmény típusa | Példák |
|---|---|---|---|
| Aritmetikai operátorok | |||
| + (unáris) |
|
| +5 +5.0 |
| - (unáris) |
-5 -5.0 | ||
| + (bináris) | 5 + 2 2.0 + 4.0 2 + 4.0 (hiba, inkompatibilis típus) | ||
| - (bináris) | 5 - 2 2.0 - 4.0 2 - 4.0 (hiba, inkompatibilis típus) | ||
| * | 5 * 2 2.0 * 4.0 2 * 4.0 (hiba, inkompatibilis típus) | ||
| / | 5 / 2 (értéke 2) 5 / -2 (értéke -2) -5 / 2 (értéke -2) -5 / -2 (értéke 2) 2.0 / 4.0 (értéke 0.5) 2 / 4.0 (hiba, inkompatibilis típus) | ||
| rem |
|
| x rem y = x - y * (x/y)
|
| mod | x mod y = x rem |y| ha x >= 0
= 0 ha x < 0 and x rem |y| = 0
= |y| + x rem |y| ha x < 0 and x rem |y| < 0
| ||
| Szöveges operátorok | |||
| & |
|
| "Hello, " & "world!" (értéke "Hello, world!") "Ελληνικά " & "Русский" '1101'B & '11100'B '3EF'H & 'AC'H '15EF'O & '2844'O '15EF'O & '2844'H (hiba, inkompatibilis típus) |
| Relációs operátorok | |||
| == |
|
| 5 == 2 (értéke false) true == false (értéke false) 5 == 5 (értéke true) myVar == { a := 1, b := 2.0 } (OK, a jobb operandus típusa levezethető a bal típusa alapján) { a := 1, b := 2.0 } == myVar (OK, a bal operandus típusa levezethető a jobb típusa alapján) { a := 1, b := 2.0 } == { a := 1, b := 2.0 } (hiba, operandusok típusa nem vezethető le) |
| != | 5 != 2 (értéke true) true != false (értéke true) 5 != 5 (értéke false) | ||
| < |
| 5 < 10 (értéke true)
| |
| > | 5.0 > 10.0 (értéke false)
| ||
| <= | E_ACCEPT <= E_DENY (az összehansonlítás az enumeration értéei alapján hajtódik végre)
| ||
| >= | 1 >= 2.0 (hiba, inkompatibilis típus)
| ||
| Logikai operátorok | |||
| not |
|
| not true (értéke false) not false (értéke true) |
| and | true and false (értéke false) | ||
| or | true or false (értéke true) | ||
| xor | true xor false (értéke true) | ||
| Bitenkénti operátorok | |||
| not4b |
|
| not4b '1010'B (értéke '0101'B) not4b 'A'H (értéke '5'H) not4b 'A0'O (értéke '5F'O) |
| and4b | '1100'B and4b '1010'B (értéke '1000'B) 'C'H and4b 'A'H (értéke '8'H) 'CF'O and4b 'A0'O (értéke '80'O) | ||
| or4b | '1100'B or4b '1010'B (értéke '1110'B) 'C'H or4b 'A'H (értéke 'E'H) 'CF'O or4b 'A0'O (értéke 'EF'O) | ||
| xor4b | '1100'B xor4b '1010'B (értéke '0110'B) 'C'H xor4b 'A'H (értéke '6'H) 'CF'O xor4b 'A0'O (értéke '6F'O) 'CF'O xor4b 'A0'H (hiba, inkompatibilis típus) | ||
| Eltoló operátorok | |||
| << |
bal operandus:
jobb operandus:
|
| '111001'B << 2 (értéke '100100'B) '12345'H << 2 (értéke '34500'H) '1122334455'O << 2 (értéke '3344550000'O) |
| >> | '111001'B >> 2 (értéke '001110'B) '12345'H >> 2 (értéke '00123'H) '1122334455'O >> 2 (értéke '0000112233'O) | ||
| Forgató operátorok | |||
| <@ |
bal operandus:
jobb operandus
|
| '111001'B <@ 2 (értéke '100111'B) '12345'H <@ 2 (értéke '34512'H) '1122334455'O <@ 2 (értéke '3344551122'O) "abcde" <@ 2 (értéke "cdeab") |
| @> | '111001'B @> 2 (értéke '011110'B) '12345'H @> 2 (értéke '45123'H) '1122334455'O @> 2 (értéke '4455112233'O) "abcde" @> 2 (értéke "deabc") | ||
Az operátorprecedenciák az alábbi táblázat szerint alakulnak.
| Operátorok (csökkenő erősségi sorrendben) |
|---|
| ( ... ) |
| + (unáris) - (unáris) |
| * / mod rem |
| + (bináris) - (bináris) & |
| not4b |
| and4b |
| xor4b |
| or4b |
| << >> <@ @> |
| < > <= >= |
| == != |
| not |
| and |
| xor |
| or |
A nyelv nem támogatja az operátor felüldefiniálást és új operátorokat sem lehet bevezetni.