Conversión de tipo en C

En este artículo, vamos a aprender sobre Conversión de tipo de lenguaje de programación C , tipos de conversión de tipo , sus reglas, etc.

La conversión de tipo proceso en el C es, básicamente, la conversión de un tipo de tipo de datos a otra para llevar a cabo alguna operación. La conversión se realiza sólo entre esos tipos de datos en el que la conversión es posible ex – char a int y viceversa.

1) Implícito Tipo de conversión

Este tipo de conversión se realiza generalmente por el compilador cuando sea necesario sin ningún comando por el usuario. De este modo también se le llama “Tipo de conversión automática” .

El compilador general lleva a cabo este tipo de conversión cuando una expresión particular contiene más de un tipo de datos. En tales casos se lleva a cabo ya sea de promoción o descenso de categoría tipo.

… Reglas

  1. char o short operandos de tipo serán convertidos a int durante una operación y el tipo de datos de los resultados también serán int .
  2. Si un operando de tipo long double está presente en la expresión, entonces el correspondiente operando también se convertirá en long double mismo para el tipo de datos double .
  3. Si un operando de float tipo está presente, entonces el operando correspondiente en la expresión también se convierte en float tipo y el resultado final también será float tipo.
  4. Si un operando de unsigned long int está presente, entonces el otro operando se convertirá a unsigned long int y el resultado final también será unsigned long int .
  5. Si un operando de long int está presente, entonces el otro operando se convertirá a long int y el resultado final también será long int .
  6. Si un operando de unsigned int está presente, entonces el otro operando se convertirá a unsigned int y el resultado final también será unsigned int .

Ahora, vamos a centrarnos en algunos ejemplos para más entender sobre conversiones de tipos en C.

Ejemplo 1

    int a = 20;
double b = 20.5;
a + b;

Aquí, primer operando es int tipo y la otra es de tipo double . Así, de acuerdo con la regla 2, la variable a se convertirá en double . Por lo tanto, la respuesta final es double a + b = 40.500000 .

Ejemplo 2

    char ch='a';
int a =13;
a + c;

Aquí, primer operando es char tipo y la otra es de tipo int . Así, de acuerdo con la regla 1, la variable char se convertirá en int tipo durante la operación y la respuesta final será de tipo int . Conocemos el valor ASCII para ch es 97. Por lo tanto, la respuesta final es a + c = 97 + 13 = 110 .

Ejemplo 3

    char ch='A';
unsigned int a =60;
a * b;

Aquí, el primer operando es char tipo y el otro es de tipo unsigned int . Así, según el artículo 6, char tipo de datos se convertirá en unsigned int durante la operación. Por lo tanto, el resultado final será una variable unsigned int , 65 + 60 = 125 .

Por lo tanto, todas estas ilustraciones anteriores sugieren que siempre que las ofertas compilador con diferentes tipos de datos en una expresión, el operando que está presente en el rango inferior se convierte en el correspondiente tipo de datos del operando con el rango más alto.

Para facilidad de seguimiento comprensión del diagrama de flujo figura a continuación, en la que los tipos de datos han sido dispuestos en una jerarquía de más alto al más bajo rango.

Type Conversion in C - 4

2) explícita de conversión Tipo

reglas de conversión de tipo explícita el uso de compilador para la conversión de un tipo de datos a otro lugar que el usuario explícitamente define dentro del programa el tipo de datos de los operandos en la expresión.

El siguiente ejemplo ilustra cómo conversión explícita se realiza por el usuario.

Ejemplo:

double da = 4.5;
double db = 4.6;
double dc = 4.9;
//explicitly defined by user
int result = (int)da + (int)db + (int)dc;
printf("result = %d", result);

salida

    result = 12

Por lo tanto, en el ejemplo anterior se encuentra que el resultado de salida es 12 porque en la expresión resultado el usuario ha definido explícitamente los operandos (variables) como número entero tipo de datos. Por lo tanto, no hay conversión implícita de tipo de datos por el compilador.

Si se utilizó en la conversión implícita case el resultado sería 13.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *