Els dos termes tipus de fosa i la conversió de tipus s'utilitzen en un programa per convertir un tipus de dades a un altre tipus de dades. La conversió del tipus de dades només és possible pel compilador quan són compatibles entre si. Parlem de la diferència entre la conversió de tipus i la conversió de tipus en qualsevol llenguatge de programació.
Què és un càsting tipus?
Quan un programador o usuari converteix un tipus de dades en un altre tipus de dades mentre escriu un codi de programa de qualsevol llenguatge de programació, el mecanisme es coneix com tipus de fosa . El programador l'utilitza manualment per convertir un tipus de dades en un altre. S'utilitza si volem canviar el tipus de dades de destinació a un altre tipus de dades. Recordeu que el tipus de dades de destinació ha de ser més petit que el tipus de dades d'origen. Per tant, també s'anomena conversió d'estrenyiment.
Sintaxi:
Destination_datatype = (target_datatype) variable; (data_type) it is known as casting operator
Target_datatype: És el tipus de dades en què volem convertir el tipus de dades de destinació. La variable defineix un valor que s'ha de convertir en el tipus target_data. Entendrem el concepte de fosa de tipus amb un exemple.
Suposem que volem convertir el flotar tipus de dades a int tipus de dades. Aquí, el tipus de dades de destinació és més petit que les dades d'origen perquè la mida de int és de 2 bytes i la mida del flotar el tipus de dades és de 4 bytes. I quan el canviem, el valor de la variable flotant es trunca i es converteix en una variable entera. El càsting es pot fer amb un tipus de dades compatible i no compatible.
float b = 3.0; int a = (int) b; // converting a float value into integer
Entenem el tipus de càsting mitjançant un programa C.
AreaOfRectangle.c
#include #include void main() { printf(' Welcome to Javatpoint tutorials '); float x = 3.5, y = 4.5; // the size of float variable is 4 byte. int area; // the size of the int variable is 2 bytes. area = (int) x * y; // after conversion the product converts into integer printf(' Area of a Rectangle is : %d', area); printf(' Here, we convert float data type into the Int data type'); getch(); }
Sortida:
Què és la conversió de tipus?
Si un tipus de dades es converteix automàticament en un altre tipus de dades en temps de compilació, es coneix com a conversió de tipus. La conversió la realitza el compilador si els dos tipus de dades són compatibles entre si. Recordeu que el tipus de dades de destinació no ha de ser més petit que el tipus d'origen. També es coneix com eixamplament conversió del tipus de dades.
Entendrem la conversió de tipus amb un exemple.
Suposem que tenim un int tipus de dades i voleu convertir-lo en a flotar tipus de dades. Aquests són tipus de dades compatibles entre si perquè els seus tipus són numèrics i la mida de int és de 2 bytes, que és més petit que el tipus de dades float. Per tant, el compilador converteix automàticament els tipus de dades sense perdre ni truncar els valors.
int a = 20; Float b; b = a; // Now the value of variable b is 20.000 /* It defines the conversion of int data type to float data type without losing the information. */
A l'exemple anterior, el tipus de dades int es converteix en float, que té una mida més gran que int i, per tant, amplia el tipus de dades font.
Entenem la conversió de tipus mitjançant un programa C.
#include #include void main() { printf(' Welcome to Javatpoint tutorials '); int x = 3, y = 4; // the size of int variable is 2 byte. float area; // the size of float variable is 4 bytes. area = x * y; /* It is a type conversion that automatically converted by the compiler at the compile time of a program. */ printf(' Area of a Rectangle is : %f', area); printf(' Here, we convert int data type to the float data type'); getch(); }
Sortida:
Diferència entre el càsting de tipus i la conversió de tipus
S.N. | Tipus Casting | Conversió de tipus |
---|---|---|
1 | El càsting de tipus és un mecanisme en el qual un programador converteix un tipus de dades a un altre tipus de dades mitjançant un operador de càsting (). | La conversió de tipus permet a un compilador convertir un tipus de dades en un altre en el moment de la compilació d'un programa o codi. |
2 | Es pot utilitzar tant el tipus de dades compatible com el tipus de dades incompatible. | La conversió de tipus només s'utilitza amb tipus de dades compatibles i, per tant, no requereix cap operador de càsting. |
3 | Requereix que un programador emet manualment una dada a un altre tipus. | No requereix cap intervenció del programador per convertir un tipus de dades a un altre perquè el compilador les compila automàticament en temps d'execució d'un programa. |
4 | S'utilitza durant el disseny d'un programa pel programador. | S'utilitza o té lloc en el moment de la compilació d'un programa. |
5 | Quan s'emet un tipus de dades a un altre, el tipus de dades de destinació ha de ser més petit que les dades d'origen. | Quan es converteix un tipus de dades a un altre, el tipus de destinació ha de ser més gran que el tipus de dades d'origen. |
6 | També es coneix com a conversió reduïda perquè un tipus de dades més gran es converteix en un tipus de dades més petit. | També es coneix com a conversió ampliada perquè un tipus de dades més petit es converteix en un tipus de dades més gran. |
7 | És més fiable i eficient. | És menys eficient i menys fiable. |
8 | Hi ha la possibilitat que es perdin dades o informació en el tipus de càsting. | En la conversió de tipus, és poc probable que les dades es perdin quan es converteixen d'un tipus de dades petit a un gran. |
8 | float b = 3.0; int a = (int) b | int x = 5, y = 2, c; float q = 12.5, p; p = q/x; |