Рецоммендед, 2020

Избор Уредника

Разлика између типа Цастинг и конверзије типа

Два термина "тип цастинг" и "типе цонверсион" настају када постоји потреба за конвертовањем једног типа података у други. Када су два типа компатибилна, претварање једног типа у други врши компајлер. Међутим, постоји основна разлика између конверзије типа и типирања, тј. Конверзија типа се врши "аутоматски" помоћу компајлера, док се програмирање врши "експлицитно". Хајде да дискутујемо о разлици и типу и конверзији уз помоћ табеле упоређивања.

Табела за упоређивање:

Основа за поређењеТип ЦастингКонверзија типа
ЗначењеКорисник додељује један тип података другом, користећи операцију цаста, а онда се назива "Типе Цастинг".Конвертовање једног типа података у други аутоматски се зове "Конверзија типа".
АпплиедОдлагање типа може се применити и на два типа "некомпатибилних" података.Конверзија типа може бити имплементирана само када су два типа података 'компатибилна'.
ОператорЗа пребацивање типа података у други, потребан је оператор цастинг '()'.Није потребан оператор.
Величина типова податакаТип одредишта може бити мањи од типа извора.Овде одредишни тип мора бити већи од типа извора.
ИмплементираноТо се ради током дизајнирања програма.То се ради експлицитно током компајлирања.
Тип конверзије
Нарровинг цонверсион.Проширење конверзије.
Примеринт а;
бајт б;
...
...
б = (бајт) а;
инт а = 3;
флоат б;
б = а; // вредност у б = 3.000.

Дефиниција типа Цастинг

Кастинг типа се може дефинисати као, бацање једног типа података на други тип података, од стране програмера, у време пројектовања програма. Аутоматска конверзија једног типа података у другу није могућа све време. То може бити услов да је 'тип одредишта' мањи од 'изворног типа', тако да програмер мора експлицитно бацити већи тип података на мањи тип података користећи операцију цастинг '()'. Пошто је већи тип података модулиран на мањи тип података, он се такође назива 'сужена конверзија'.

Декларација:

 дестинатион_типе = (таргет_типе) вариабле / валуе // тип циља је тип у којем желите да конвертујете изворни тип који је увек одредишни тип. 

Хајде да то схватимо са примером. Желите да конвертујете тип података 'инт' у 'бите', сада, пошто је 'бајт' мањи од 'инт', конверзија типа није дозвољена. Овде смо морали имплицитно да конвертујемо 'инт' у 'бите' помоћу операције цастинг '()'. Пошто је 'инт' већи од 'бајта', величина 'инт' ће бити редукована на опсег 'инт мод бите'.

 инт а; бајт б; ... ... б = (бајт) а; 

Када се 'флоат' конвертује у 'инт', величина флоат-а се скраћује, јер 'инт' не чува фракцијску вредност. Ако је величина типа одредишта премала за врсту извора у коју се може уклопити, онда је тип извора модуло одредишни тип 'ранге'. Лијевање се такођер може примијенити када су типови података компатибилни, добра је пракса да се користи лијевање типа гдје год је потребна конверзија типа.

Дефиниција конверзије типа

Конверзија типа је аутоматска конверзија једног типа података у другу кад год је то потребно, изричито од стране компајлера. Међутим, постоје два услова која треба да се задовоље пре конверзије типа.

  • Изворни и одредишни тип морају бити компатибилни.
  • Тип одредишта мора бити већи од типа извора.

Ова два услова треба да задовоље да би се постигла конверзија типа, а ова врста конверзије назива се "проширење конверзије", пошто се мањи тип конвертује у већи тип, јавља се проширење типа. За ову конверзију проширења, нумерички типови као 'инт', 'флоат' су компатибилни једни са другима, док нумерички за цхар и боолеан или цхар у боолеан такође нису компатибилни.

Овај пример ће дати бољи увид у ово

 инт а = 3; флоат б; б = а; // вредност у б = 3.000. 

Овде се 'инт' конвертује у 'флоат' који је већи од 'инт', тако да долази до проширења типа извора. Овде није потребан ниједан оператер цастинга јер ће га компајлер то урадити експлицитно.

Кључне разлике између типања и конверзије

  1. Основна разлика која разликује тип прелаза од конверзије типа је да је цастинг типа конверзија једног типа у други, извршена од стране програмера. С друге стране, конверзија типа је конверзија једног типа у други, извршена од стране компајлера током компајлирања.
  2. Одвајање типа може се применити на типове података који можда нису компатибилни једни са другима, али конверзија типа може се применити само на типове података који су међусобно компатибилни.
  3. Конверзија једног типа у други у типу цастинг захтева операцију цастинг “()” док, конверзија једног типа података у другу у конверзији типа не захтева ниједан оператер.
  4. Док конвертује један тип података у други у типу цастинг, тип одредишта може бити већи или мањи од типа извора. С друге стране, тип одредишта мора бити већи од типа извора у конверзији типа.
  5. Конверзија једног типа у други тип се врши код кодирања у типу, док се код конверзије типа, конверзија једног типа у другу врши експлицитно током компилације.
  6. Одлагање типа се зове конверзија сужења јер овде тип одредишта може бити мањи од типа извора, док се конверзија типа назива проширење конверзије јер овде тип одредишта мора бити већи од типа извора.

Закључак:

Може се закључити да конверзија типа и типирање, оба извршавају задатак конвертовања једног типа података у други, али се разликују у смислу да се увођење типа врши од стране програмера, коришћењем цаст оператора '()' и конверзије типа се врши од стране компајлер, и не користи ниједан оператер.

Top