Conversión de tipos

Cuando hay diferencia de tipos(int, double, float...) de los operandos en una operación binaria, el compilador los convierte a un tipo común. Existes reglas generales  para estas conversiones aunque varían en algunos compiladores :
  1. 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)
  1. Si un operando es de tipo long double, el otro se convertirá a long double.
  2. Si un operando es de tipo double, el otro se convertirá a double.
  3. Si un operando es de tipo float, el otro se convertirá a float.
  4. Si un operando es de tipo unsigned long , el otro se convertirá a unsigned long .
  5. Si un operando es de tipo long, el otro se convertirá a long .
  6. Si un operando es de tipo unsigned int, el otro se convertirá a unsigned int.
  7. 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



Compartir

0 Comment to "Conversión de tipos"

Publicar un comentario