Dva termíny typové odlévání a typová konverze se používají v programu k převodu jednoho datového typu na jiný datový typ. Převod datových typů je možný pouze kompilátorem, pokud jsou vzájemně kompatibilní. Pojďme diskutovat o rozdílu mezi přetypováním a převodem typů v jakémkoli programovacím jazyce.
Co je typový odlitek?
Když programátor nebo uživatel při psaní programového kódu libovolného programovacího jazyka převede datový typ na jiný datový typ, mechanismus je známý jako typové odlévání . Programátor jej ručně používá k převodu jednoho datového typu na jiný. Používá se, pokud chceme změnit cílový datový typ na jiný datový typ. Pamatujte, že cílový datový typ musí být menší než zdrojový datový typ. Proto se také nazývá zužující konverze.
mylive kriket
Syntax:
Destination_datatype = (target_datatype) variable; (data_type) it is known as casting operator
Target_datatype: Je to datový typ, do kterého chceme cílový datový typ převést. Proměnná definuje hodnotu, která má být převedena do typu target_data. Pojďme pochopit koncept typového odlévání na příkladu.
Předpokládejme, že chceme převést plovák datový typ do int datový typ. Zde je cílový datový typ menší než zdrojová data, protože velikost int je 2 bajty a velikost plovák datový typ je 4 bajty. A když ji změníme, hodnota proměnné float se zkrátí a převede na celočíselnou proměnnou. Casting lze provést s kompatibilním a nekompatibilním typem dat.
float b = 3.0; int a = (int) b; // converting a float value into integer
Pojďme pochopit typ casting prostřednictvím programu C.
AreaOfRectangle.c
co je rom
#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ýstup:
Co je převod typu?
Pokud je datový typ automaticky převeden na jiný datový typ v době kompilace, nazývá se konverze typu. Převod provede kompilátor, pokud jsou oba datové typy vzájemně kompatibilní. Pamatujte, že cílový datový typ by neměl být menší než zdrojový typ. Je také známý jako rozšíření konverze datového typu.
sharwanand
Pojďme si převod typu porozumět na příkladu.
Předpokládejme, že máme int datový typ a chcete jej převést na a plovák datový typ. Jedná se o datové typy vzájemně kompatibilní, protože jejich typy jsou číselné a velikost int je 2 bajty, což je menší než datový typ float. Kompilátor tedy automaticky převádí datové typy bez ztráty nebo zkrácení hodnot.
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. */
Ve výše uvedeném příkladu je datový typ int převeden na float, který má větší velikost než int, a proto rozšiřuje zdrojový datový typ.
Pojďme pochopit převod typů pomocí 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ýstup:
Rozdíl mezi odléváním typu a konverzí typu
S.N. | Typ Odlévání | Převod typu |
---|---|---|
1 | Přetypování typu je mechanismus, ve kterém je jeden datový typ převeden na jiný datový typ pomocí operátoru casting () programátorem. | Převod typů umožňuje kompilátoru převést jeden datový typ na jiný datový typ v době kompilace programu nebo kódu. |
2 | Může být použit jak kompatibilní datový typ, tak nekompatibilní datový typ. | Převod typů se používá pouze s kompatibilními datovými typy, a proto nevyžaduje žádný operátor přetypování. |
3 | Vyžaduje to, aby programátor ručně přetypoval jedno data do jiného typu. | Převod jednoho datového typu na jiný nevyžaduje zásah programátora, protože jej kompilátor automaticky zkompiluje za běhu programu. |
4 | Používá se při navrhování programu programátorem. | Používá se nebo probíhá v době kompilace programu. |
5 | Při přetypování jednoho datového typu na jiný musí být cílový datový typ menší než zdrojová data. | Při převodu jednoho datového typu na jiný by měl být cílový typ větší než zdrojový datový typ. |
6 | Je také známý jako zužující převod, protože jeden větší datový typ převede na menší datový typ. | Je také známý jako rozšiřující převod, protože jeden menší datový typ převede na větší datový typ. |
7 | Je spolehlivější a efektivnější. | Je méně efektivní a méně spolehlivý. |
8 | Existuje možnost ztráty dat nebo informací při přetypování. | Při převodu typu je nepravděpodobné, že by došlo ke ztrátě dat při převodu z malého na velký datový typ. |
8 | float b = 3.0; int a = (int) b | int x = 5, y = 2, c; float q = 12.5, p; p = q/x; |