domingo, 27 de abril de 2014

AWP: 14 Operatoren in C++

Arithmetische Operatoren

Die erste Klasse der Operationen sind die arithmetichen Operationen. Sie braucht man, um mit Zahlen zu rechnen.

Operator Int Float Operationen Beispiel Ergebnis
+ × × Vorzeichen (unäres Plus) +7 7
- × × Vorzeichen (unäres Minus) -8 -8
+ × × Addition (binäres Plus) 5 + 6 11
- × × Subtraktion (binäres Minus) 9 - 3 6
* × × Multiplikation 8 * 4 32
/ × × Division (bei Integer-Zahlen abgerundet!) 1 / 2 0
/ × × Division (sobald Gleitkommazahlen dabei, als Gleitkommadivision durchgeführt) 1.0 / 2 0.5
% × Modulo (Rest bei IntegerDivision, Vorzeichen des Dividenden bleibt -7 % 3 -1
= × × Zuweisung (linker Seite wird der Wert der rechten zugewiesen) a = 8 8

Relationale Operatoren (Vergleichsoperatoren)

Die relationalen Operatoren führen Vergleiche durch und ergeben wie die logischen Operatoren Wahrheitswerte, d.h. 0 oder 1.

Operator Int Float Operation Beispiel Ergebnis
< x x Vergleich auf kleiner x < y 1, wenn x kleiner y, 0 sonst
> x x Vergleich auf größer y > x 1, wenn y größer x, 0 sonst
<= x x Vergleich auf kleiner oder gleich x <= y 1, wenn x kleiner oder gleich y, 0 sonst
>= x x Vergleich auf größer oder gleich y >= x Wie bei x <= y
== x x Prüfung auf Gleichheit x == y 1, wenn x und y gleich, 0 sonst
!= x x Prüfung auf Ungleichheit x != 43 0 wenn x gleich 43, 1 sonst

Logische Operatoren

Die letzte Klasse an Operatoren sind die logischen Operatoren. Dabei werden Integerzahlen als wahrer Wert interpretiert, wenn sie ungleich Null sind, als falscher Wert sonst. Das Ergebnis ist 1 falls wahr. 0 falls falsch. Auch hier ist eine Anwendung  auf Fließkommazahlen möglich, aber nicht sinnvoll.

Operator Int Float Operation Beispiel Ergebnis
&& x Logisches UND i && j 1, wenn i und j ungleich 0, 0 sonst
|| x Logisches ODER a || b 0 wenn a und b gleich 0, 1 sonst
! x Logisches NOT (Negation) !q

Da logische Werte in C++ nichts anderes sind als Integerzahlen, kann man mit ihnen auch rechnen. Dabei kann man z.B. folgenden Trick nutzen:
a = 5 + !b *7;
Dieser Ausdruck weist a den Wert 5 oder 12 zu, je nachdem ob b Null ist oder nicht (falls b nicht Null, ist !b = Null und !0 ist 1). Man sollte sich allerdings im klaren darüber sein, dass solche Tricks der Lesbarkeit des Programms schaden!

No hay comentarios:

Publicar un comentario