[C con Clase] conversiones capítulo 9

MuGliDaRk muglidark en gmail.com
Jue Sep 9 18:23:30 CEST 2010


el ejemplo bajo la misma premisa.

int a, b, c, d;
float r,s ,t;

b=123;
r=100.345656;
d = r + b;------sumar
cout<<d<<endl;

Resultado.  -------->  223

el analisis.
"b" es un "int" mientras no se haga una conversion.
"r" es un "float"mientras no se haga una conversion.
cuando se realiza una operacion como esto
d = r + b;  -----------> se esta diciendo----- >
 "float + int"

para que el compilador pueda  realizar esta operacion ambas sumando tienen
que tener el mismo tamaño es por eso que "b" se convierte en float solo para
esta operacion de suma, terminada esta operacion "b" sigue siendo int.

terminada la operacion "r+b" el resultado es un float..
r + b =float
y como "d" es un int, el compilador realiza la conversion de ese float en
int para que el resultado que se desea no se altere.

en suma hay 4 esenarios
1.- la "declaracion" donde "d y b" son int y "r" es float
2.- la "la operacion de suma" donde "b" se convierte en float para sumarlo a
r
3.- la "finalizacion de operacion" "r+b" es float y se convierte en int para
poder darle el valor a "d" que es int.
4.- la "salida" donde "r" sigue siendo float; "b" vuelve a ser int, y "d"
sigue siendo int.



El 9 de septiembre de 2010 08:32, Salvador Pozo <salvador en conclase.net>escribió:

> El pasado 2010-09-09 12:44:40, mai escribió:
>
> m> Buenos días,
> m> en el cápitulo 9, se habla de las conersiones y pone el siguiente
> ejemplo:
> m> int a, b, c, d;
> m> float r,s ,t;
> m> d = r + b; --> indica que b se convierte a float. Ahora bién que pasa
> con
> m> "d" que era int. ¿Sigue siendo int y se pierde información o cambia a
> float?
>
> Hola:
>
> Un poco más abajo se explica eso, aunque me olvidé de mencionar esa línea.
>
> La promoción también se aplica en las asignaciones. Cuando la conversión no
> supone una pérdida de información (promoción) se realiza de forma
> automática.
>
> Si como en este caso, se hay pérdida de información (democión), el
> compilador emite un aviso, un "warning".
>
> main.cpp|9|warning: converting to `int' from `float'|
>
> En ningún caso se modifica el tipo de la variable. "d" es un "int", y
> ningún valor que le asignemos puede cambiar eso.
>
> Hasta pronto.
>
> --
> Salvador Pozo (Administrador)
> mailto:salvador en conclase.net
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
Atte.
_______________________________


_______________________________

*Antes de imprimir este mensaje, asegúrese de que sea necesario. Proteger el
medio ambiente está en nuestras manos.
Before you print this message, make sure it is necessary. It is in our hands
to protect our environment.
*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100909/76d261ac/attachment-0001.html>


Más información sobre la lista de distribución Cconclase