- char, unsigner char, signed char, short, unsigned son convertidos a int, y unsigned short es convertido a unsigned int. Despues de esto, cualquier par de valores asociados con un operador son un int( tambien long y unsigned) , double, float o long double
a partid de este momento, la homogenización de tipos se realiza siguiendo los patrones que se indican( en el orden señalado)
- Si un operando es de tipo long double, el otro se convertirá a long double.
- Si un operando es de tipo double, el otro se convertirá a double.
- Si un operando es de tipo float, el otro se convertirá a float.
- Si un operando es de tipo unsigned long , el otro se convertirá a unsigned long .
- Si un operando es de tipo long, el otro se convertirá a long .
- Si un operando es de tipo unsigned int, el otro se convertirá a unsigned int.
- Llegados a este punto ambos operandos son int.
veamos ahora el siguiente programa :
#include <iostream>
using namespace std;
int main (int argc, char *argv[]) {
char a='a';
int b=3;
float c=3.4f;
double d=4.78;
/*
->sin importar que valor tome b, a se convierte en un 97(entero) ya que
es la posición que ocupa el carácter 'a' en el código ASCII
->como b y a ahora son enteros nos dará como resultado de la operación
un entero
*/
cout<<a/b<<endl;
/*
->sin importar que valor tome b, a se convierte en un 97(entero) ya que
es la posición que ocupa el carácter 'a' en el código ASCII.
->como c es un float a(ahora entero) se convierte en float, por lo tanto
nos dara un resltado de tipo float
*/
cout<<a/c<<endl;
cout<<c/d<<endl;//c se convierte en un double
return 0;
}
la salida de este programa es:
32
28.5294
0.711297
0 Comment to "Conversión de tipos"
Publicar un comentario