Conversión De Tipo De Datos
Algunas operaciones implican conversión de datos. Por ejemplo, si divide dos valores enteros, hay una alta posibilidad de que el resultado nosea un entero. El mikroC realiza una conversión automática cuando se requiera.
Si dos operandos de tipo diferente se utilizan en una operación aritmética, el tipo deoperando de la prioridad más baja se convierte automáticamente en el tipo de operando de la prioridad más alta. Los tipos de datos principales se colocan según el siguiente ordenjerárquico:
La autoconversión se realiza asimismo en las operaciones de asignación. El resultado de la expresión de la derecha del operador de la asignación siempre seconvierte en el tipo de la variable de la izquierda del operador. Si el resultado es de tipo de la prioridad más alta, se descarta o se redondea para coincidir con el tipo de lavariable. Al convertir un dato real en un entero, siempre se descartan los números que siguen al punto decimal.
int x; // A la variable x se le asigna el tipo integer (unentero)
x = 3; // A la variable x se le asigna el valor 3
x+ = 3.14; // El valor 3.14 se agrega a la variable x al
// realizar la operación de asignación
/* El resultado dela adición es 6 en vez de 6.14, como era de esperar.
Para obtener el resultado esperado sin descartar los números que siguen al
punto decimal, se debe declarar x como unpunto flotante. */
Para realizar una conversión explícita, antes de escribir una expresión o una variable hay que especificar el tipo de resultado de operación entreparéntesis.
double distancia, tiempo, velocidad;
distancia = 0.89;
tiempo = 0.1;
velocidad = (int)(a/b); // c = (int)8.9 = 8.0
velocidad = ((int)a)/b; // c = 0/0.1 = 0.0
Regístrate para leer el documento completo.