| 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
}
|