Quizás
te preguntes qué pasa cuando escribimos expresiones numéricas
en las que todos los operandos no son del mismo tipo.

En
estos casos, cuando los operandos de cada operación
binaria asociados a un operador son de distinto tipo, se convierten
a un tipo común.
Existen
reglas que rigen estas conversiones, y aunque pueden cambiar
ligeramente de un compilador a otro, en general serán más
o menos así:
1.
Cualquier tipo entero pequeño como char o short
es convertido a int o unsigned int. En este punto cualquier
pareja de operandos será int (con o sin signo), double,
float o long double.
2. Si algún operando es de tipo long double,
el otro se convertirá a long double.
3. Si algún operando es de tipo double,
el otro se convertirá a double.
4. Si algún operando es de tipo float,
el otro se convertirá a float.
5. Si algún operando es de tipo unsigned
long, el otro se convertirá a unsigned long.
6. Si algún operando es de tipo long,
el otro se convertirá a long.
7. Si algún operando es de tipo unsigned
int, el otro se convertirá a unsigned int. En este
caso ambos operandos son int.
También
se aplica conversión de tipos en las asignaciones,
cuando la variable receptora es de distinto tipo que el resultado
de la expresión de la derecha.
Cuando esta conversión no implica pérdida de precisión,
se aplican las mismas reglas que para los operandos, estas conversiones
se conocen también como promoción de tipos.
Cuando hay pérdida de precisión, las conversiones
se conocen como democión de tipos.
El
compilador normalmente emite un aviso o "warning", cuando
se hace una democión implícita, es decir cuando hay
una democión automática.
Por
ejemplo si en el ejemplo anterior, en la ultima sentencia, tuvieramos
entero3 en lugar de real3.
|