Operator | Beschreibung | Beispiel | ||
+ |
Addition | b + a |
||
- |
Subtraktion | b - a |
||
* |
Multiplikation | b * a |
||
/ |
Division (! bei Integer-Werten !) | b / a |
||
% | Rest bei ganzzahliger Division | b % a |
Die Division von Integerzahlen berechnet den ganzzahligen Anteil
der Division, d.h., 8 / 3
liefert 2
als Ergebnis.
(siehe Ex320.cc)
Falls aber der Wert 2.666666
herauskommen soll, muß
mindestens einer der Operatoren in eine Gleitkommazahl umgewandelt werden,
wie im Beispiel zu sehen ist.
{ int i,j ; float ij_mod, ij_div, float_ij_div; i = 8; j = 3; ij_div = i / j; // Attention: result is 2 ij_mod = i % j; // Modulu // now: result is 2.666666 float_ij_div = i/(float)j; // explicit or float_ij_div = i/(j+0.); // implicit type conversion } |
Bzgl. der Vorrangregeln für Operatoren sei auf die Literatur verwiesen,
die alte Regel ``Punktrechnung geht vor Strichrechnung'' gilt
auch in C/C++. Analog zur Schule werden Ausdrücke in runden Klammern
( <ausdruck> )
zuerst berechnet. (siehe Ex320.cc)
{ int k; double x = 2.1; k = 1; // k stores 1 k = 9/8; // k stores 0, Integer division k = 3.14; // k stores 3, truncated k = -3.14; // k stores -3 or -4, compiler dependent k = 2.9e40; // undefined x = 9/10; // x stores 0 x = (1+1)/2; // x stores 1.0 x = 1 + 1.0/2; // x stores 1.5 x = 0.5 + 1/2; // x stores 0.5 } |