Arithmetische Konvertierungen
Viele binären Operatoren (in Ausdrücke mit binären Operatoren) führen Konvertierungen von Operanden und Ertrag die gleiche Weise entsteht.Die ursachen diese Methode aufgerufen wird konvertierungen Operator „übliche arithmetische Konvertierungen“. Arithmetische Konvertierungen von Operanden unterschiedlicher systemeigenen Typen werden entsprechend der Darstellung in der folgenden Tabelle ausgeführt.Typedef-Typen verhalten sich entsprechend ihren zugrunde liegenden systemeigenen Typen.
Bedingungen für die Typkonvertierung
Bedingungen erfüllt |
Conversion |
---|---|
Jeder Operand ist vom Typ long double. |
Anderer Operand umgewandelt wird, um long doubleeinzugeben. |
Die vorangehende nicht getroffene Zustand und jeder Operand ist vom Typ double. |
Anderer Operand umgewandelt wird, um doubleeinzugeben. |
Die vorangehenden nicht getroffenen Bedingungen und jeder Operand ist vom Typ float. |
Anderer Operand wird dem Typ float konvertiert. |
Der vorausgehende Bedingungen nicht erfüllt (keiner der Operanden in den Typ float). |
Ganzzahlige Erweiterungen werden auf den Operanden ausgeführt wie folgt:
|
Der folgende Code veranschaulicht die Konvertierungsregeln in der Tabelle beschrieben werden:
// arithmetic_conversions.cpp
double dVal;
float fVal;
int iVal;
unsigned long ulVal;
int main() {
// iVal converted to unsigned long
// result of multiplication converted to double
dVal = iVal * ulVal;
// ulVal converted to float
// result of addition converted to double
dVal = ulVal + fVal;
}
Die erste Anweisung im obigen Beispiel wird Multiplikation zweier ganzzahligen Typen, iVal und ulValan.Die getroffene Bedingung besteht darin, dass keiner der Operanden vom Typ float und ein Operand den Typ unsigned intist.Daher wird der andere Operand, iVal, konvertiert, um unsigned inteinzugeben.dValdas Ergebnis wird, zugewiesen.Die getroffene Bedingung besteht darin, dass ein Operand den Typ doubleist. Daher wird das unsigned int Ergebnis der Multiplikation konvertiert, um doubleeinzugeben.
Die zweite Anweisung im obigen Beispiel wird der Einführung von float und fVal ganzzahligen Typ und ulValan.Die ulVal-Variable wird auf den Typ float konvertiert (dritte Bedingung in der Tabelle).Das Ergebnis der Addition wird konvertiert, um double (second) Bedingungen in der Tabelle zugewiesen und dVal.