TapHome

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:

SkupinaOperatoriPrimjer
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čkiAND, XOR, ORTe > 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.

  1. * /
  2. + -
  3. << >>
  4. < <= > >=
  5. = <> !=
  6. &
  7. | ^
  8. AND
  9. XOR
  10. OR

Za razliku od jezika C ili JavaScript, operatori nad bitovima vežu jače od AND i OR, ali slabije od usporedbi. a & 1 > 0 znači a & (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: TRUE

Slož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 error

Desna 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:

TapHomeExcel, Google SheetsPrimjer
a & bBITAND(a, b)3 & 1 je 1
a | bBITOR(a, b)2 | 1 je 3
a ^ bBITXOR(a, b)6 ^ 3 je 5
a << nBITLSHIFT(a, n)8 << 2 je 32
a >> nBITRSHIFT(a, n)32 >> 2 je 8

U Excelu je ^ potencija; u sustavu TapHome to je bitovni XOR. Za potencije koristite POWER. IF, AND, OR i MOD imaju isto značenje u oba, ali su u sustavu TapHome AND i OR operatori 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.