Різниця між типовим литтям та конверсією типів

Автор: Laura McKinney
Дата Створення: 1 Квітень 2021
Дата Оновлення: 4 Травень 2024
Anonim
Перфекціонізм | Петро Холявчук та Вєжис Марина
Відеоролик: Перфекціонізм | Петро Холявчук та Вєжис Марина

Зміст


Основна різниця між перетворенням типу і кастингом типів, тобто перетворення типів робиться "автоматично" компілятором, тоді як кастинг типів повинен бути "явно виконаний" програмістом.

Два терміни "кастинг типів" та "перетворення типів" виникають тоді, коли є необхідність перетворення одного типу даних в інший. Коли два типи сумісні один з одним, тоді перетворення одного типу в інший здійснюється автоматично компілятором. Давайте обговоримо різницю як відливання типів, так і конверсії за допомогою таблиці порівняння.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма:

Основа для порівнянняТип литтяПеретворення типу
ЗначенняОдин тип даних присвоюється іншому користувачем, використовуючи оператор передачі, тоді він називається "Кастинг типів".Перетворення одного типу даних в інший автоматично компілятором називається "Перетворення типу".
ЗастосовуєтьсяКастинг типів також може застосовуватися до двох несумісних типів даних.Перетворення типів може бути здійснено лише тоді, коли сумісні два типи даних.
ОператорДля передачі типу даних іншому потрібен оператор кастингу ().Не потрібен оператор.
Розмір типів данихТип призначення може бути меншим, ніж тип джерела.Тут тип призначення повинен бути більше, ніж тип джерела.
ЗдійсненоЦе робиться під час розробки програми.Це робиться явно при складанні.
Тип конверсії

Звуження конверсії.Розширення конверсії.
Прикладint a;
байт b;
...
...
b = (байт) a;
int a = 3;
float b;
b = a; // значення в b = 3.000.


Визначення типового лиття

Тип лиття може бути визначено як, передача одного типу даних іншому типу даних, програмістом під час розробки програми. Автоматичне перетворення одного типу даних в інший не можливе постійно. Це може бути умовою, що "тип призначення" менше, ніж "тип джерела". Тому програміст повинен чітко передавати більш великий тип даних меншому типу даних за допомогою оператора кастингу "()". Оскільки більший тип даних модулюється до меншого типу даних, його також називають «звуженням конверсії».

Декларація:

target_type = (target_type) змінна / значення // цільовий тип - це тип, у який потрібно перетворити тип джерела, це завжди тип призначення.

Приклад

Давайте розберемося на прикладі. Ви хочете перетворити тип даних "int" у "байт". Тепер, оскільки "байт" менше, ніж "int", перетворення типів не дозволено. Тут нам довелося неявно перетворити "int" у "байт" за допомогою оператора кастингу "()". Оскільки "int" більший, ніж "байт", розмір "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 = a; // значення в b = 3.000.

Тут "int" перетворюється на "float", який більше, ніж "int", тому відбувається розширення типу джерела. Тут оператор кастингу не потрібен, оскільки компілятор буде робити це явно.

  1. Основна відмінність, яка відрізняє кастинг типів від перетворення типів, полягає в тому, що кастинг типів - це перетворення одного типу в інший, здійснене програмістом. З іншого боку, перетворення типів - це перетворення одного типу в інший, здійснене компілятором під час компіляції.
  2. Кастинг типів може застосовуватися до типів даних, які можуть бути не сумісні один з одним. І навпаки, перетворення типів може застосовуватися лише до типів даних, сумісних один з одним.
  3. Для перетворення одного типу в інший при переливанні типів потрібен оператор кастингу "()", тоді як для перетворення одного типу даних в інший у перетворенні типів не потрібен жоден оператор.
  4. Під час перетворення одного типу даних у інший при передаванні типів тип призначення може бути більшим або меншим, ніж тип джерела. На противагу, тип призначення повинен бути більшим, ніж тип джерела при перетворенні типу.
  5. Перетворення одного типу в інший здійснюється під час кодування в кастингу типів. Навпаки, при перетворенні типів перетворення одного типу в інший здійснюється явно під час компіляції.
  6. Лиття типу називається звуженням перетворення, оскільки тут тип призначення може бути меншим, ніж тип джерела. На відміну від цього, перетворення типу називається розширенням перетворення, оскільки тут тип призначення повинен бути більшим, ніж тип джерела.

Висновок:

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