Conversión de tipos
# 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.

## 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.
