Operatori
Operatori skriptnog jezika TapHome: aritmetički operatori, operatori usporedbe, operatori nad bitovima i logički operatori, njihovih 10 razina prioriteta, zamka a & 1 > 0, skraćeno izračunavanje i ekvivalenti u Excelu.
Popis operatora
Skriptni jezik ima aritmetičke operatore, operatore usporedbe, operatore nad bitovima i logičke operatore:
| Skupina | Operatori | Primjer |
|---|---|---|
| Unarni | - (negacija), +, ! (logički NOT) | !IsRaining |
| Multiplikativni | *, / | (20.5 + 9.5) / 2 je 15 |
| Aditivni | +, - | "T=" + Te spaja tekst |
| Pomak | <<, >> | 8 << 2 je 32 |
| Relacijski | <, <=, >, >= | Te > 25 |
| Jednakost | = (jednako), <> ili != (nije jednako) | Mode <> 2 |
| Bitovni AND | & | 3 & 1 je 1 |
| Bitovni OR, XOR | |, ^ | 2 | 1 je 3 |
| Logički | AND, XOR, OR | Te > 25 AND Hu > 60 |
| Dodjela | := i složeni oblici +=, -=, *=, /=, <<=, >>=, &=, |=, ^= | x += 1 |
XOR nad dvama brojevima je bitovni XOR: 5 XOR 1 je 4. Nad TRUE i FALSE to je logički XOR.
Jezik nema NOT, ==, %, **, && ni ||. Koristite !, =, MOD, POWER, AND i OR. 1 == 1 završava pogreškom Wrong number of literals and operators in expression, NOT x pogreškom Unknown variable or constant 'NOT'.
Prioritet
Operatori se izračunavaju ovim redoslijedom, od najvišeg prioriteta prema najnižem. Operatori iste razine izračunavaju se slijeva nadesno; zagrade ( ) mijenjaju redoslijed.
*/+-<<>><<=>>==<>!=&|^ANDXOROR
Za razliku od jezika C ili JavaScript, operatori nad bitovima vežu jače od
ANDiOR, ali slabije od usporedbi.a & 1 > 0značia & (1 > 0). Uvijek pišite(a & 1) > 0.
VAR flags := 2;
flags & 2 > 0;
# Result: 0, read as flags & (2 > 0), which is flags & 1
(flags & 2) > 0;
# Result: TRUESložena dodjela ima prioritet svoje operacije: x -= a - b izračunava se kao (x -= a) - b, a x *= 1 + 2 kao (x *= 1) + 2. Desnu stranu stavite u zagrade:
VAR total := 10;
total -= (a - b);Skraćeno izračunavanje
AND i OR izračunavaju desnu stranu samo kada lijeva strana još ne određuje rezultat. XOR uvijek izračunava obje strane. Uvjet zato može zaštititi izraz pokraj sebe:
va2 <> 0 AND va1 / va2 > 1;
# Result: FALSE when va2 is 0, without the Division by zero errorDesna strana se ne izračunava kada je va2 jednako 0. Istu zaštitu za vrijednost pruža IF, koji izračunava samo odabranu granu.
Ekvivalenti u Excelu
Operatori nad bitovima odgovaraju ovim funkcijama u Excelu i Google Sheets:
| TapHome | Excel, Google Sheets | Primjer |
|---|---|---|
a & b | BITAND(a, b) | 3 & 1 je 1 |
a | b | BITOR(a, b) | 2 | 1 je 3 |
a ^ b | BITXOR(a, b) | 6 ^ 3 je 5 |
a << n | BITLSHIFT(a, n) | 8 << 2 je 32 |
a >> n | BITRSHIFT(a, n) | 32 >> 2 je 8 |
U Excelu je
^potencija; u sustavu TapHome to je bitovni XOR. Za potencije koristitePOWER.IF,AND,ORiMODimaju isto značenje u oba, ali su u sustavu TapHomeANDiORoperatori koji stoje između operanada.
Pogledajte primjer operacija s bitovima u Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing ili isprobajte interaktivni alat na http://bitwisecmd.com/. Funkcije koje čitaju i pišu pojedinačne bitove i bajtove nalaze se na stranici Operacije s bitovima.