Conversiones aritméticas
Muchos operadores binarios (descritos en Expresiones con operadores binarios) producen conversiones de operandos y producción de resultados de la misma manera.La manera estas conversiones de la causa de los operadores se denomina “las conversiones aritméticas usuales.” Conversiones aritméticas de operandos de diferentes tipos nativos se realizan como se muestra en la tabla siguiente.Los tipos de Definición se comportan como los tipos nativos subyacentes.
condiciones para la conversión de tipos
Condiciones cumplan |
Conversión |
---|---|
Cualquier operando es de Mástipo Doble. |
El otro operando se convierte para escribir Más Doble. |
La condición anterior no cumplida y cualquier operando es de Dobleescrito. |
El otro operando se convierte para escribir Doble. |
Las condiciones anteriores no cumplan y cualquier operando es de Hacer flotanteescrito. |
El otro operando se convierte para escribir Hacer flotante. |
Condiciones anteriores no cumplan (ninguno de los operandos son de tipos de punto flotante). |
Las promociones enteras se realizan en los operandos como sigue:
|
El código siguiente se muestran las reglas de conversión descritas en la tabla:
// 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;
}
La primera instrucción del ejemplo anterior muestra la multiplicación de dos tipos enteros, iVal y ulVal.La condición cumplida es que ninguno de los operandos es de flotar tipo y un operando es de unsigned intescrito.Por consiguiente, el otro operando, iVal, se convierte para escribir unsigned int.el resultado se asigna a dVal.La condición cumplida es que un operando es de Dobleescrito; por consiguiente, el resultado de unsigned int de multiplicación se convierte para escribir Doble.
La segunda instrucción del ejemplo anterior se muestra la adición de Hacer flotante y un tipo entero, fVal y ulVal.La variable de ulVal se convierte para escribir Hacer flotante (tercera condición en la tabla).El resultado de la suma se convierte para escribir Doble (segundo condición en la tabla) y asignado a dVal.