Typumwandlung Flashcards
implizite Datentypumwandlung
Der Compiler nimmt eine automatische Konvertierung von einem in den anderen Datentyp vor.
explizite Typumwandlung
Der Programmierer erzwingt die Konvertierung des Datentyps.
Implizite Umwandlung von char/short nach int beim Rechnen
Der Prozessor rechnet mit nichts kleinerem als einem Integer. Daher werden der short/char bei Berechnungen in einen int implizit umgewandelt.
Implizite Umwandlung von float nach double beim Rechnen
Der Prozessor rechnet mit nichts kleinerem als einem Double. Daher wird der float bei Berechnungen in einen double implizit umgewandelt.
arithmetische Datentypumwandlung
Bei arithmetischen Berechnungen wird der niedrigere Datentyp in den höhenwertigen Datentyp umgewandelt und dann wird die Berechnung ausgeführt. Die Umwandlung erfolgt implizit.
Rangfolge von Datentypen
- char < short < int < long < long long
- signed und unsigned haben selben rang
- erweiterte Datentypen mit gleicher Bitbreite haben niedrigeren Rang
- float < double < long double < long long double
- Gleitpunkttypen haben einen höheren Rang als ganzzahlige Typen
Implizite Typumwandlung beim Zuweisungsoperator
Der rechte Operand wird immer in den Typ des linken Operanden umgewandelt. Dabei kann es zu fehlern kommen.
Umwandlung von höherwertigen Datentypen in niederwertigere Datentypen.
- Nachkommateile können weggelassen werden.
- höherwertige Bits werden weggelassen
- Werte werden berundet oder abgeschnitten
Vergleich von signed und unsigned Datentypen
Beim vergleich von Signed und Unsigend Datentypen kann es zu fehlern kommen.
Syntax einer expliziten Typumwandlung
(Datentyp) Ausdruck;
Auswertung einer expliziten Typumwandlung: (Typ) Ausdruck;
Zuerst wird der Ausdruck ausgewertet. Dannach wird dieser in den Datentyp (Typ) umgewandelt.