Lenguaje C

Cuando escribimos una expresi�n aritm�tica a+b, en la cual hay variables o valores de distintos tipos, el compilador realiza determinadas conversiones antes de que eval�e la expresi�n. Estas conversiones pueden ser para 'aumentar' o 'disminuir' la precisi�n del tipo al que se convierten los elementos de la expresi�n. Un ejemplo claro, es la comparaci�n de una variable de tipo int con una variable de tipo double. En este caso, la de tipo int es convertida a double para poder realizar la comparaci�n.

Los tipos peque�os son convertidos de la forma siguiente: un tipo char se convierte a int, con el modificador signed si los caracteres son con signo, o unsigned si los caracteres son sin signo. Un unsigned char es convertido a int con los bits m�s altos puestos a cero. Un signed char es convertido a int con los bits m�s altos puestos a uno o cero, dependiendo del valor de la variable.

Para los tipos de mayor tama�o:

  • Si un operando es de tipo double, el otro es convertido a double.
  • Si un operando es de tipo float, el otro es convertido a float.
  • Si un operando es de tipo unsigned long, el otro es convertido a unsigned long.
  • Si un operando es de tipo long, el otro es convertido a long.
  • Si un operando es de tipo unsigned, el otro es convertido a unsigned.
  • Si no, los operandos son de tipo int.

Una variable o expresi�n de un tipo se puede convertir expl�citamente a otro tipo, anteponi�ndole el tipo entre par�ntesis.

void cambio_tipo (void)
{
  float a;
  int b;
  b = 10;
  a = 0.5;
  if ( a <=(float) b )
  menor();
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR