title: Conversión de tipos
text: # Conversión de tipos
  
  En ciencias de la computación la conversión de tipos (type casting en inglés) se refiere a la transformación de un tipo de dato en otro. Esto se hace para tomar las ventajas que pueda ofrecer el tipo a que se va a convertir. Por ejemplo, los valores de un conjunto más limitado, como números enteros, se pueden almacenar en un formato más compacto y más tarde convertidos a un formato diferente que permita las operaciones que anteriormente no eran posibles, tales como la división con decimales.
  
  # Conversión de tipos
  ## Tipos de conversión
  
  Hay dos tipos de conversión, la implícita y la explícita:
  En la implícita se convierte un tipo de dato de menor rango a un supertipo (tipo de dato de mayor rango); este tipo de conversión lo realiza el compilador, ya que no hay pérdida de datos si, por ejemplo, se pasa un int (tipo entero) a long.
  En la conversión explícita, el compilador no es capaz de realizarla por sí solo y por ello debe definirse explícitamente en el programa.
  Existen varios tipos de conversión explícita:
  * Controlada: antes de realizar la conversión se controla en tiempo de ejecución si el tipo de destino puede tener el valor de origen, y si no se produce un error.
  * No controlada: no se realiza ningún control, si el tipo de dato destino no puede contener al de origen el resultado es indefinido (generalmente se produce un desbordamiento de búfer y en algunos casos como en java el cambio se produce sin mayores consecuencias).
  * Patrón de bits: La representación de bits en bruto de la fuente es una copia literal, y se reinterpreta de acuerdo con el tipo de destino. Esto también puede lograrse a través de aliasing.