Разлика между леене на тип и преобразуване на типа

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 4 Може 2024
Anonim
Автоматический календарь-планировщик смен в Excel
Видео: Автоматический календарь-планировщик смен в Excel

Съдържание


Основната разлика между преобразуването на типа и леенето на типове, т.е. преобразуването на типа се извършва „автоматично“ от компилатора, докато преобразуването на типа трябва да бъде „изрично извършено“ от програмиста.

Двата термина „кастинг на тип“ и „преобразуване на тип“ възникват, когато има нужда от преобразуване на един тип данни в друг. Когато двата типа са съвместими един с друг, тогава преобразуването на един тип в друг се извършва автоматично от компилатора. Нека обсъдим разликата както при леене на тип, така и при преобразуване с помощта на сравнителна диаграма.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма:

Основа за сравнениеТип кастингТип Преобразуване
значениеЕдин тип данни се присвоява на друг от потребителя, като се използва оператор за гласове, след това се нарича "Тип кастинг".Преобразуването на един тип данни в друг автоматично от компилатора се нарича „Тип преобразуване“.
приложенПредаването на тип може да се приложи и за два несъвместими типа данни.Преобразуването на типа може да се осъществи само когато са съвместими два типа данни.
ОператорЗа предаване на тип данни на друг е необходим оператор за кастинг ().Не се изисква оператор.
Размер на типовете данниТипът назначение може да бъде по-малък от типа източник.Тук типът на местоназначение трябва да е по-голям от типа източник.
ИзпълненоПрави се по време на проектирането на програмата.Прави се изрично при компилиране.
Тип реализация

Стесняване на преобразуването.Разширяване на реализацията.
примерint a;
байт b;
...
...
b = (байт) a;
int a = 3;
float b;
б = с; // стойност в b = 3.000.


Определение за тип кастинг

Тип кастинг може да бъде дефиниран като, предаване на един тип данни към друг тип данни, от програмиста, по време на проектирането на програмата. Автоматичното преобразуване на един тип данни в друг не е възможно през цялото време. Възможно е условието „типът на местоназначение“ да е по-малък от „тип източник“. Следователно, програмистът трябва да прехвърли изрично по-големия тип данни към по-малък тип данни, използвайки оператора за кастинг „()“. Тъй като по-големият тип данни се модулира към по-малкия тип данни, той също се нарича „стесняване на преобразуването“.

Декларация:

target_type = (target_type) променлива / стойност // target type е тип, в който искате да конвертирате типа източник, винаги е типът на местоназначение.

пример

Нека го разберем с пример. Искате да преобразувате типа данни „int“ в „byte“. Сега, тъй като „байтът“ е по-малък от „int“, преобразуването на типа не е позволено. Тук трябваше да преобразуваме неявно „int“ в „byte“, използвайки оператор за кастинг „()“. Тъй като „int“ е по-голям от „byte“, размерът на „int“ ще бъде намален до диапазона „int mod byte“.


int a; байт b; ... ... b = (байт) a;

Когато 'float' се преобразува в 'int', размерът на float се съкращава, тъй като 'int' не съхранява дробната стойност. Ако размерът на типа на местоназначение е твърде малък, за да може да се впише типът източник, тогава типът източник е тип „диапазон“ по модул. Кастингът може да се приложи и когато типовете данни са съвместими. Добра практика е да се използва кастинг на тип, където е необходимо преобразуване на типа.

Определение за преобразуване на типа

Преобразуване на типа е автоматичното преобразуване на един тип данни в друг, когато се изисква, извършено изрично от компилатора. Но има две условия, които трябва да бъдат изпълнени преди преобразуването на типа.

  • Типът на източника и местоназначението трябва да са съвместими.
  • Типът назначение трябва да е по-голям от типа източник.

Тези две условия трябва да отговарят за постигане на преобразуване на типа и този вид преобразуване се нарича „разширяваща се конверсия“, тъй като по-малък тип се преобразува в по-голям тип, настъпва разширяване на типа. За тази разширяваща се конверсия, числовите типове като „int“, „float“ са съвместими помежду си, докато числовите за char и boolean или char до boolean също не са съвместими.

пример

Този пример ще осигури по-добър поглед върху това

int a = 3; float b; б = с; // стойност в b = 3.000.

Тук „int“ се преобразува в „float“, което е по-голямо от „int“, така че се получава разширяване на типа източник. Тук не се изисква кастинг оператор, тъй като компилаторът ще го направи изрично.

  1. Основната разлика, която отличава леенето на тип от преобразуването на типа е, че типът кастинг е преобразуването на един тип в друг, извършено от програмиста. От друга страна, преобразуването на типа е преобразуването на един тип в друг, извършено от компилатора по време на компилиране.
  2. Типовото леене може да се приложи към типовете данни, които може да не са съвместими един с друг. Обратно, преобразуването на типа може да се прилага само за типове данни, които са съвместими един с друг.
  3. Преобразуването на един тип в друг при леене на тип изисква оператора на кастинг „()“, докато преобразуването на един тип в друг в преобразуване на тип не изисква никакъв оператор.
  4. Докато конвертирате един тип данни в друг при предаване на тип, типът назначение може да бъде по-голям или по-малък от типа източник. За разлика типът на местоназначение трябва да е по-голям от типа източник при преобразуване на тип.
  5. Преобразуването на един тип в друг се извършва, докато се кодира в кастинг на тип. За разлика от тях при преобразуването на типа, преобразуването на един тип в друг се извършва изрично по време на компилиране.
  6. Предаването на тип се нарича преобразуване на стесняване, защото тук типът на местоназначение може да бъде по-малък от типа източник. За разлика от тях, преобразуването на типа се нарича разширяващо преобразуване, тъй като тук типът на местоназначение трябва да е по-голям от типа източник.

Заключение:

Може да се заключи, че преобразуването на типа и леенето на тип и двете изпълняват задачата за преобразуване на един тип данни в друг, но се различават по смисъл, че кастингът на типа се извършва от програмиста, използвайки оператор cast () ', а преобразуването на типа се извършва от компилатора , и не използва нито един оператор.