Два термина ливење типа анд тхе конверзија типа се користе у програму за претварање једног типа података у други тип података. Конверзија типа података је могућа само од стране компајлера када су међусобно компатибилни. Хајде да разговарамо о разлици између преливања типова и конверзије типа у било ком програмском језику.
Шта је ливење типа?
Када програмер или корисник конвертује тип података у други тип података током писања програмског кода било ког програмског језика, механизам је познат као ливење типа . Програмер га ручно користи за претварање једног типа података у други. Користи се ако желимо да променимо циљни тип података у други тип података. Запамтите да одредишни тип података мора бити мањи од изворног типа података. Отуда се назива и сужавањем конверзије.
Синтакса:
Destination_datatype = (target_datatype) variable; (data_type) it is known as casting operator
Таргет_дататипе: То је тип података у који желимо да конвертујемо одредишни тип података. Променљива дефинише вредност која се конвертује у циљни_подаци. Хајде да разумемо концепт преливања типова на примеру.
Претпоставимо да желимо да конвертујемо пловак тип података у инт тип података. Овде је циљни тип података мањи од изворних података јер је величина инт је 2 бајта, а величина пловак тип података је 4 бајта. А када је променимо, вредност променљиве флоат се скраћује и претвара у целобројну променљиву. Пребацивање се може обавити са компатибилним и некомпатибилним типом података.
float b = 3.0; int a = (int) b; // converting a float value into integer
Хајде да разумемо превођење типа кроз Ц програм.
АреаОфРецтангле.ц
#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(); }
Излаз:
Шта је конверзија типа?
Ако се тип података аутоматски конвертује у други тип података у време компајлирања, познато је као конверзија типа. Превођење врши компајлер ако су оба типа података међусобно компатибилна. Запамтите да одредишни тип података не би требало да буде мањи од типа извора. Такође је познато као проширење конверзија типа података.
Хајде да разумемо конверзију типа на примеру.
Претпоставимо да имамо инт тип података и желите да га конвертујете у а пловак тип података. Ово су типови података међусобно компатибилни зато што су њихови типови нумерички, а величина инт је 2 бајта што је мање од типа података са пловком. Дакле, компајлер аутоматски конвертује типове података без губитка или скраћивања вредности.
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. */
У горњем примеру, тип података инт је конвертован у флоат, који има већу величину од инт, и стога проширује изворни тип података.
Хајде да разумемо конверзију типова кроз Ц програм.
#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(); }
Излаз:
Разлика између пребацивања типа и конверзије типа
С.Н. | Типе Цастинг | Типе Цонверсион |
---|---|---|
1 | Пребацивање типа је механизам у којем се један тип података конвертује у други тип података помоћу оператора кастинг () од стране програмера. | Конверзија типа омогућава компајлеру да конвертује један тип података у други тип података у време компајлирања програма или кода. |
2 | Може се користити и компатибилан тип података и некомпатибилан тип података. | Конверзија типа се користи само са компатибилним типовима података, и стога не захтева никакав оператор преношења. |
3 | Захтева од програмера да ручно пребаци један податак у други тип. | Не захтева никакву интервенцију програмера да би се конвертовао један тип података у други јер га компајлер аутоматски компајлира у време извођења програма. |
4 | Користи се при дизајнирању програма од стране програмера. | Користи се или се одвија у време компајлирања програма. |
5 | Када пребацујете један тип података на други, одредишни тип података мора бити мањи од изворних података. | Када конвертујете један тип података у други, одредишни тип би требало да буде већи од изворног типа података. |
6 | Такође је позната као конверзија сужавања јер се један већи тип података претвара у мањи тип података. | Такође је позната као конверзија проширења јер се један мањи тип података претвара у већи тип података. |
7 | Поузданији је и ефикаснији. | Мање је ефикасан и мање поуздан. |
8 | Постоји могућност губитка података или информација у преливању типа. | У конверзији типа, мало је вероватно да ће подаци бити изгубљени када се претварају из малог у велики тип података. |
8 | float b = 3.0; int a = (int) b | int x = 5, y = 2, c; float q = 12.5, p; p = q/x; |