Dva termíny typové odlievanie a typová konverzia sa používajú v programe na konverziu jedného dátového typu na iný dátový typ. Konverzia dátového typu je možná iba kompilátorom, ak sú navzájom kompatibilné. Poďme diskutovať o rozdieloch medzi typovým liatím a konverziou typu v akomkoľvek programovacom jazyku.
Čo je typový odliatok?
Keď programátor alebo používateľ konvertuje typ údajov na iný typ údajov pri písaní programového kódu akéhokoľvek programovacieho jazyka, mechanizmus je známy ako typové odlievanie . Programátor ho manuálne používa na konverziu jedného dátového typu na iný. Používa sa, ak chceme zmeniť cieľový dátový typ na iný dátový typ. Pamätajte, že cieľový typ údajov musí byť menší ako zdrojový typ údajov. Preto sa nazýva aj zužujúca konverzia.
Syntax:
Destination_datatype = (target_datatype) variable; (data_type) it is known as casting operator
Target_datatype: Je to dátový typ, do ktorého chceme previesť cieľový dátový typ. Premenná definuje hodnotu, ktorá sa má skonvertovať v type target_data. Poďme pochopiť koncept typového liatia na príklade.
Predpokladajme, že chceme previesť plavák dátový typ do int Dátový typ. Tu je cieľový typ údajov menší ako zdrojové údaje, pretože veľkosť int je 2 bajty a veľkosť plavák dátový typ je 4 bajty. A keď ju zmeníme, hodnota premennej float sa skráti a prevedie sa na celočíselnú premennú. Casting je možné vykonať s kompatibilným a nekompatibilným typom údajov.
float b = 3.0; int a = (int) b; // converting a float value into integer
Poďme pochopiť typ casting cez C program.
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(); }
Výkon:
Čo je konverzia typu?
Ak sa typ údajov automaticky konvertuje na iný typ údajov v čase kompilácie, nazýva sa to konverzia typu. Konverziu vykoná kompilátor, ak sú oba typy údajov navzájom kompatibilné. Pamätajte, že cieľový typ údajov by nemal byť menší ako typ zdroja. Je tiež známy ako rozširovanie konverziu dátového typu.
Poďme pochopiť konverziu typu na príklade.
Predpokladajme, že máme int dátový typ a chcete ho previesť na a plavák Dátový typ. Ide o dátové typy, ktoré sú navzájom kompatibilné, pretože ich typy sú číselné a veľkosť int je 2 bajty, čo je menšie ako u dátového typu float. Preto kompilátor automaticky konvertuje typy údajov bez straty alebo skrátenia hodnôt.
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. */
Vo vyššie uvedenom príklade sa typ údajov int skonvertuje na typ float, ktorý má väčšiu veľkosť ako int, a preto rozširuje zdrojový typ údajov.
Poďme pochopiť konverziu typov pomocou programu 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(); }
Výkon:
Rozdiel medzi typovým liatím a typovou konverziou
S.N. | Typ Casting | Typ Konverzia |
---|---|---|
1 | Pretypovanie je mechanizmus, v ktorom je jeden dátový typ konvertovaný na iný dátový typ pomocou operátora casting () programátorom. | Konverzia typov umožňuje kompilátoru konvertovať jeden typ údajov na iný typ údajov v čase kompilácie programu alebo kódu. |
2 | Dá sa použiť ako kompatibilný dátový typ, tak aj nekompatibilný dátový typ. | Konverzia typov sa používa iba s kompatibilnými typmi údajov, a preto nevyžaduje žiadny operátor pretypovania. |
3 | Vyžaduje, aby programátor manuálne preniesol jeden údaj do iného typu. | Konverzia jedného dátového typu na iný nevyžaduje zásah programátora, pretože kompilátor ho automaticky skompiluje v čase spustenia programu. |
4 | Používa sa pri navrhovaní programu programátorom. | Používa sa alebo prebieha v čase kompilácie programu. |
5 | Pri pretypovaní jedného typu údajov na iný musí byť cieľový typ údajov menší ako zdrojové údaje. | Pri konverzii jedného typu údajov na iný by mal byť cieľový typ väčší ako zdrojový typ údajov. |
6 | Je tiež známy ako zužujúca konverzia, pretože jeden väčší dátový typ konvertuje na menší dátový typ. | Je tiež známy ako rozširujúca konverzia, pretože jeden menší dátový typ konvertuje na väčší dátový typ. |
7 | Je spoľahlivejšia a efektívnejšia. | Je menej efektívny a menej spoľahlivý. |
8 | Existuje možnosť straty údajov alebo informácií pri pretypovaní. | Pri konverzii typov je nepravdepodobné, že sa údaje stratia pri konverzii z malého na veľký typ údajov. |
8 | float b = 3.0; int a = (int) b | int x = 5, y = 2, c; float q = 12.5, p; p = q/x; |