Mathematische Grundoperationen

  • Addieren:
a = 2+3 ==> a == 5
a = 2++3 ==> a == 5
  • Multiplizieren:
a = 2*3 ==> a == 6
  • Subtrahieren:
a = 2-3 ==> a == -1
a = 2--3 ==> a == 5
  • Division:
a = 2 / 3 ==> a == 0.66667
  • Potenzieren:

Um bn zu berechnen benutzt man b**n

a = 2**3 ==> a == 8

Modulo

Man kann nicht alles so teilen, daß gebrochene Zahlen herauskommen; wenn man zum Beispiel 33 Eier auf 4 Personen aufteilen will, ohne die Eier zu zerteilen, so bleibt ein Ei übrig. Die Aufteilung ist in diesem Fall 8 Eier pro Person, und 1 Ei, das man nicht aufteilen kann. Die Operationen heißen Div (ganzzahlige Division) und Modulo und werden in REXX durch die Symbole % und // repräsentiert:

  • Div
a = 33 % 4 ==> a == 8
  • Mod
a = 33 // 4 ==> a == 1

In der Praxis benötigt man die Modulo-Operation sehr oft für Datumsberechnungen, z.B. 26.01.2006 war ein Mittwoch. Der 27.04.2006 ist genau 90 Tage später. 90 // 7 = 6 (90:7=84 Rest 6) Daraus folgt, Mittwoch + 6 Tage = Dienstag

Bit-Funktionen

Die folgenden drei Funktionen vergleichen die Zeichen bitweise. Ein Bit kann dabei den Zustand 0 oder 1 haben. Jeweils 8 Bit zusammengefasst ergeben ein Zeichen. Das Zeichen "A" hat zum Beispiel den entsprechenden binären Code 01000001 (x2b(c2x('A'))).

  • bitand(a,b)

Beispiel: 01011010 und 01101101 ergeben 01001000

a = bitand("Z","m") ==> a == "H"
  • bitor(a,b)

Beispiel: 01011010 und 01101101 ergeben 01111111

a = bitor("Z","m") ==> 
  • bitxor(a,b)

Beispiel: 01011010 und 01101101 ergeben 00110111

a = bitor("Z","m") ==> "7"

Um diese Operationen mit dezimalen Zahlen benutzen zu können, muß man sie vorher und nachher konvertieren:

a = D2C(5)
b = D2C(9)
x = C2D(bitand(a,b)) ==> x ==  1
y = C2D(bitor(a,b))  ==> y == 13
z = C2D(bitxor(a,b)) ==> z == 12

Logische Operatoren

Die logischen Operatoren AND (&), OR (|) und XOR (ausschließliches Oder, &&) verlangen und liefern die exakten Werte 0 (falsch) oder 1 (wahr). Es findet keine „Kurzschlussauswertung“ statt: enthält ein logischer Ausdruck mehrere Funktionsaufrufe, so werden alle Aufrufe tatsächlich ausgeführt, auch wenn sich der Wert des Ausdrucks nicht mehr ändern kann.

This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.