domingo, 13 de abril de 2014

AWP: 8 Typumwandlungen in C++

In C und C++ gibt es zwei Arten von arithmetischen Datentypen:

  • ganzzahlige Typen, z.B. int, char, bool (unsigned, short, long)
  • Gleitkommatypen, z.B. float, double (long)

Automatische Typumwandlung

(Implizite Typumwandlung)

Bei Berechnungen in Programmen gelten folgende Regeln:
Wenn verschiedene Datentypen beteiligt sind, wird das Ergebnis automatisch in den leistungsfähigeren Typ umgewandelt.
Beispiel:
int i_zahl1 = 5;
float f_zahl2 = 7.5;
double d_zahl3 = 10.3;
ergebnis = i_zahl1 * f_zahl2; // Ergebnis: 37,5 -- Typ: float
ergebnis = f_zahl2 + d_zahl3; // Ergebnis: 70,80 -- Typ: double

Wenn verschiedene Datentypen beteiligt sind, wird das Ergebnis automatisch in den leistungsfähigeren Typ umgewandelt.

Wenn nur gleiche Datentypen beteiligt sind, hat auch das Ergebnis diesen Datentyp.
Beispiel:
int i_zahl1 = 12;
int i_zahl2 = 4;
ergebnis = i_zahl2 / i_zahl1; // Ergebnis: 0 -- Typ: int

Erzwungene Typumwandlung

Wenn man einen bestimmten Datentyp erzwingen möchte, schreibt man diesen Typ in Klammern vor den Ausdruck, der berechnet wird.
Beispiel:
int i_zahl1 = 5;
int i_zahl2 = 6;
ergebnis = (float) i_zahl1 / i_zahl2; // Ergebnis: 0,8333 -- Typ: float

Diese erzwungene Umwandlungsoperation nennt man auch cast / casting / TypCasting

No hay comentarios:

Publicar un comentario