next up previous contents index
Nächste Seite: 3.3 Vergleichsoperatoren Aufwärts: 3.2 Arithmetische Operatoren Vorherige Seite: 3.2.1 Unäre Operatoren   Inhalt   Index


3.2.2 Binäre Operatoren

Bei binären Operatoren treten zwei Operanden auf. Der Ergebnistyp der Operation hängt von den Operatoren ab.

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
}


next up previous contents index
Nächste Seite: 3.3 Vergleichsoperatoren Aufwärts: 3.2 Arithmetische Operatoren Vorherige Seite: 3.2.1 Unäre Operatoren   Inhalt   Index
Gundolf Haase 2004-01-15