TapHome

Operatoren

Operatoren der TapHome-Skriptsprache: arithmetische, Vergleichs-, bitweise und logische Operatoren, ihre 10 Rangstufen, die Falle a & 1 > 0, Kurzschlussauswertung und Entsprechungen in Excel.

Liste der Operatoren

Die Skriptsprache hat arithmetische, Vergleichs-, bitweise und logische Operatoren:

GruppeOperatorenBeispiel
Unär- (Negation), +, ! (logisches NOT)!IsRaining
Multiplikativ*, /(20.5 + 9.5) / 2 ergibt 15
Additiv+, -"T=" + Te verbindet Text
Verschiebung<<, >>8 << 2 ergibt 32
Relational<, <=, >, >=Te > 25
Gleichheit= (gleich), <> oder != (ungleich)Mode <> 2
Bitweises AND&3 & 1 ergibt 1
Bitweises OR, XOR|, ^2 | 1 ergibt 3
LogischAND, XOR, ORTe > 25 AND Hu > 60
Zuweisung:= und die zusammengesetzten Formen +=, -=, *=, /=, <<=, >>=, &=, |=, ^=x += 1

XOR mit zwei Zahlen ist ein bitweises XOR: 5 XOR 1 ergibt 4. Mit TRUE und FALSE ist es das logische XOR.

Die Sprache hat kein NOT, ==, %, **, && oder ||. Verwenden Sie !, =, MOD, POWER, AND und OR. 1 == 1 schlägt mit Wrong number of literals and operators in expression fehl, NOT x mit Unknown variable or constant 'NOT'.

Rangfolge

Operatoren werden in dieser Reihenfolge ausgewertet, von der höchsten zur niedrigsten Rangstufe. Operatoren derselben Stufe werden von links nach rechts ausgewertet; Klammern ( ) ändern die Reihenfolge.

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

Anders als in C oder JavaScript binden die bitweisen Operatoren stärker als AND und OR, aber schwächer als die Vergleiche. a & 1 > 0 bedeutet a & (1 > 0). Schreiben Sie immer (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

Eine zusammengesetzte Zuweisung hat die Rangfolge ihrer Operation: x -= a - b wird als (x -= a) - b ausgewertet und x *= 1 + 2 als (x *= 1) + 2. Setzen Sie die rechte Seite in Klammern:

VAR total := 10;
total -= (a - b);

Kurzschlussauswertung

AND und OR werten die rechte Seite nur aus, wenn die linke Seite das Ergebnis noch nicht entscheidet. XOR wertet immer beide Seiten aus. Eine Bedingung kann daher den Ausdruck neben ihr schützen:

va2 <> 0 AND va1 / va2 > 1;
# Result: FALSE when va2 is 0, without the Division by zero error

Die rechte Seite wird nicht ausgewertet, wenn va2 den Wert 0 hat. Denselben Schutz für einen Wert bietet IF, das nur den gewählten Zweig auswertet.

Entsprechungen in Excel

Die Bitoperatoren entsprechen diesen Funktionen in Excel und Google Sheets:

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

In Excel ist ^ eine Potenz; in TapHome ist es das bitweise XOR. Für Potenzen verwenden Sie POWER. IF, AND, OR und MOD bedeuten in beiden dasselbe, aber in TapHome sind AND und OR Operatoren, die zwischen den Operanden stehen.

Sehen Sie sich das Beispiel für Bitoperationen in Google Sheets an: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing, oder probieren Sie das interaktive Werkzeug unter http://bitwisecmd.com/ aus. Funktionen, die einzelne Bits und Bytes lesen und schreiben, stehen auf Bitoperationen.