4.3    Arithmetische Operatoren

Arithmetische Operatoren sind binäre Operatoren. Das heißt, der Operator hat immer zwei (Lateinisch bi) Operanden (beispielsweise [Operand][Operator][Operand] oder einfach 10+10). Tabelle 4.1 zeigt, welche arithmetischen Operatoren in C zur Verfügung stehen.

Operator

Bedeutung

+

Addiert zwei Werte.

-

Subtrahiert zwei Werte.

*

Multipliziert zwei Werte.

/

Dividiert zwei Werte. Eine Division durch 0 ist nicht erlaubt.

%

Rest einer Division (Modulo). Funktioniert nur mit Ganzzahlen als Datentyp. Kann nicht mit Fließkommazahlen verwendet werden. Außerdem darf niemals eine Division durch 0 mit dem Modulo-Operator vorgenommen werden.

Tabelle 4.1    Darstellung von arithmetischen Operatoren in C

Hierzu ein einfaches Beispiel mit dem Multiplikationsoperator, der die Fläche eines Kreises anhand des Radius berechnet (A=r2×PI):

00  // Kapitel4/kreisberechnung.c
01 #include <stdio.h>

02 int main(void) {
03 const double pi = 3.14159265358979;
04 double r = 0.0;
05 printf("Radius eingeben: ");
06 int check = scanf("%lf", &r);
07 if( check != 1 ) {
08 printf("Fehler beim Einlesen ...\n");
09 return 1; // Programm beenden
10 }
11 double aKreis = r * r * pi;
12 printf("Kreisflaeche betraegt: %lf\n", aKreis);
13 return 0;
14 }

Listing 4.3    kreisberechnung.c demonstriert an bekannten Formeln für die Kreisberechnung den korrekten Umgang mit Operatoren.

Als Gleitkommatyp wählen Sie in dem letzten Beispiel double und definieren gleich den Wert von pi in Zeile (03) als Konstante. Nachdem Sie den Wert für den Radius r in Zeile (06) eingelesen und die Eingabe in den Zeilen (07) bis (10) auf Fehler überprüft haben, wird die Berechnung in Zeile (11) durchgeführt. Dort werden die einzelnen Werte multipliziert, und das Ergebnis wird an die Variable aKreis zugewiesen. In Zeile (12) wird das Ergebnis dieser Berechnung ausgegeben. Das Programm gibt bei der Ausführung z. B. Folgendes aus:

Radius eingeben: 19.2
Kreisflaeche betraegt: 1158.116716

Auf die Weise, die im letzten Beispiel dargestellt wurde, können Sie selbstverständlich auch Berechnungen mit dem Additionsoperator, Subtraktionsoperator, Divisionsoperator oder dem Modulo-Operator durchführen (den letzteren jedoch nur mit Ganzzahltypen). Der Modulo-Operator gibt den ganzzahligen Rest einer Division zurück, z. B. 11%10=1. Der Modulo-Operator ist sehr wichtig und spielt zusammen mit den bitweisen logischen Operatoren und den Bitschiebe-Operatoren eine Hauptrolle in der Kryptografie.

Erweiterte Darstellung arithmetischer Operatoren

Die arithmetischen Operatoren aus dem vorangehenden Abschnitt lassen sich auch in einer kürzeren Schreibweise notieren, wie Tabelle 4.2 zeigt.

Operator

Bedeutung

+=

Val1 += Val2 ist gleichwertig mit Val1 = Val1 + Val2

-=

Val1 -= Val2 ist gleichwertig mit Val1 = Val1 - Val2

*=

Val1 *= Val2 ist gleichwertig mit Val1 = Val1 * Val2

/=

Val1 /= Val2 ist gleichwertig mit Val1 = Val1 / Val2

%=

Val1 %= Val2 ist gleichwertig mit Val1 = Val1 % Val2

Tabelle 4.2    Erweiterte Darstellung von arithmetischen Operatoren in C