Operátory
Operátory skriptovacího jazyka TapHome: aritmetické, porovnávací, bitové a logické operátory, jejich 10 úrovní priority, past a & 1 > 0, zkrácené vyhodnocení a ekvivalenty v Excelu.
Seznam operátorů
Skriptovací jazyk má aritmetické, porovnávací, bitové a logické operátory:
| Skupina | Operátory | Příklad |
|---|---|---|
| Unární | - (záporné znaménko), +, ! (logická negace) | !IsRaining |
| Násobení a dělení | *, / | (20.5 + 9.5) / 2 je 15 |
| Sčítání a odčítání | +, - | "T=" + Te spojí text |
| Posun | <<, >> | 8 << 2 je 32 |
| Relační | <, <=, >, >= | Te > 25 |
| Rovnost | = (rovná se), <> nebo != (nerovná se) | Mode <> 2 |
| Bitové AND | & | 3 & 1 je 1 |
| Bitové OR, XOR | |, ^ | 2 | 1 je 3 |
| Logické | AND, XOR, OR | Te > 25 AND Hu > 60 |
| Přiřazení | := a složené tvary +=, -=, *=, /=, <<=, >>=, &=, |=, ^= | x += 1 |
XOR nad dvěma čísly je bitový XOR: 5 XOR 1 je 4. Nad TRUE a FALSE je to logický XOR.
Jazyk nemá NOT, ==, %, **, && ani ||. Použijte !, =, MOD, POWER, AND a OR. 1 == 1 skončí chybou Wrong number of literals and operators in expression, NOT x chybou Unknown variable or constant 'NOT'.
Priorita
Operátory se vyhodnocují v tomto pořadí, od nejvyšší priority po nejnižší. Operátory stejné úrovně se vyhodnocují zleva doprava; závorky ( ) pořadí mění.
*/+-<<>><<=>>==<>!=&|^ANDXOROR
Na rozdíl od C nebo JavaScriptu váží bitové operátory těsněji než
ANDaOR, ale volněji než porovnání.a & 1 > 0znamenáa & (1 > 0). Vždy pište(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žené přiřazení má prioritu své operace: x -= a - b se vyhodnotí jako (x -= a) - b a x *= 1 + 2 jako (x *= 1) + 2. Pravou stranu dejte do závorek:
VAR total := 10;
total -= (a - b);Zkrácené vyhodnocení
AND a OR vyhodnotí pravou stranu, jen když levá strana ještě nerozhodla o výsledku. XOR vyhodnotí vždy obě strany. Podmínka tak může chránit výraz vedle sebe:
va2 <> 0 AND va1 / va2 > 1;
# Result: FALSE when va2 is 0, without the Division by zero errorKdyž je va2 rovno 0, pravá strana se nevyhodnotí. Stejnou ochranu pro hodnotu poskytuje IF, které vyhodnotí jen vybranou větev.
Ekvivalenty v Excelu
Bitové operátory odpovídají těmto funkcím Excelu a Google Sheets:
| TapHome | Excel, Google Sheets | Příklad |
|---|---|---|
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 |
V Excelu je
^mocnina; v TapHome je to bitový XOR. Pro mocniny použijtePOWER.IF,AND,ORaMODmají v obou stejný význam, v TapHome jsou aleANDaORoperátory zapsané mezi operandy.
Příklad bitových operací v Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing, nebo vyzkoušejte interaktivní nástroj na http://bitwisecmd.com/. Funkce, které čtou a zapisují jednotlivé bity a bajty, jsou na stránce Bitové operace.