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.