Aritmetické převody
Mnoho binární operátory (uvedeny v výrazy s binární operátory) způsobit převody operandy a poskytují výsledky stejným způsobem.Způsob, jakým tyto operátory způsobit převody se nazývá "obvyklých aritmetických převody." Aritmetické převody operandy různé typy nativní jsou prováděny podle následující tabulky.Typy TypeDef chovají v souladu s jejich základní typy nativní.
Podmínky pro převod typu
Podmínky splněny |
Popis převodu |
---|---|
Buď operand je typu dlouhýdvojité. |
Druhým operandem je převést na typ dlouhýdvojité. |
Předcházející podmínka není splněna a buď operand je typu dvojité. |
Druhým operandem je převést na typ dvojité. |
Předchozí podmínky nejsou splněny a buď operand je typu plovoucí. |
Druhým operandem je převést na typ plovoucí. |
Nejsou splněny podmínky předcházejícího (žádné operandy jsou plovoucí typy). |
Nedílnou propagační akce prováděny na operandy takto:
|
Následující kód ilustruje pravidla převodu, které jsou popsány v tabulce:
// 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;
}
První příkaz v tomto příkladu ukazuje násobení dvou typů, iVal a ulVal.Podmínka splněna je, že ani jeden operand je typu plovoucí a jeden operand je typu unsigned int.Proto s druhým operandem, iVal, je převést na typ unsigned int.Výsledkem je přiřazen k dVal.Je splněna podmínka, že jeden operand je typu dvojité; proto unsigned int výsledkem násobení je převést na typ dvojité.
Druhý příkaz v tomto příkladu ukazuje přídavek plovoucí a integrálního typu fVal a ulVal.ulVal Proměnné je převést na typ plovoucí (třetí podmínka v tabulce).Je výsledkem přidání převést na typ dvojité (druhá podmínka v tabulce) a přiřazené k dVal.