Forskellen mellem Type casting og Type Conversion

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 5 Kan 2024
Anonim
The difference between a total and partial solar eclipse | Space with Sarah
Video.: The difference between a total and partial solar eclipse | Space with Sarah

Indhold


Den grundlæggende forskel mellem typekonvertering og type casting, dvs. typekonvertering foretages "automatisk" af compiler, hvorimod type casting skal "udtrykkeligt udføres" af programmereren.

De to udtryk "type casting" og "type konvertering" opstår, når der er behov for at konvertere en datatype til en anden. Når de to typer er kompatible med hinanden, udføres konvertering af en type til en anden automatisk af kompilatoren. Lad os diskutere forskellen mellem type casting og konvertering ved hjælp af sammenligningstabel.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel:

Grundlag for sammenligningSkriv støbningSkriv konvertering
BetyderEn datatype tildeles en anden af ​​brugeren ved hjælp af en cast-operatør, så kaldes den "Type-casting".Konvertering af en datatype til en anden automatisk af kompilatoren kaldes "Type konvertering".
AnvendtType-casting kan også anvendes til to inkompatible datatyper.Typekonvertering kan kun implementeres, når to datatyper er kompatible.
OperatørTil casting af en datatype til en anden kræves en casting-operator ().Ingen operatør kræves.
Størrelse på datatyperDestinationstypen kan være mindre end kildetypen.Her skal destinationstypen være større end kildetypen.
implementeretDet gøres under programdesign.Det gøres eksplicit under sammenstilling.
Konverteringstype

Begrænsende konvertering.Udvidet konvertering.
Eksempelint a;
byte b;
...
...
b = (byte) a;
int a = 3;
float b;
b = a; // værdi i b = 3.000.


Definition af Type Casting

Type støbning kan defineres som casting af en datatype til en anden datatype af programmereren på tidspunktet for programdesign. Automatisk konvertering af en datatype til en anden er ikke mulig hele tiden. Det kan være betingelsen, at 'destinationstype' er mindre end 'kildetype'. Derfor er programmereren nødt til at caste den større datatype eksplicit til mindre datatype ved hjælp af casting-operatoren '()'. Da den større datatype er moduleret til den mindre datatype, kaldes den også 'indsnævring af konvertering'.

Erklæring:

destination_type = (target_type) variabel / værdi // måltype er en type, hvor du vil konvertere kildetypen, det er altid destinationstypen.

Eksempel

Lad os forstå det med et eksempel. Du vil konvertere datatypen 'int' til 'byte'. Da 'byte' er mindre end 'int', er typekonvertering ikke tilladt. Her måtte vi implicit konvertere 'int' til 'byte' ved hjælp af casting operator "()". Da 'int' er større end 'byte', reduceres størrelsen på 'int' til 'int mod byte' interval.


int a; byte b; ... ... b = (byte) a;

Når 'float' konverteres til 'int', bliver floatens størrelse afkortet, da 'int' ikke gemmer brøkværdien. Hvis størrelsen på destinationstypen er for lille til, at kildetypen kan passe ind, er kildetypen modulo destinationstype 'rækkevidde'. Casting kan også anvendes, når datatyper er kompatible. Det er god praksis at bruge støbning af typen, uanset hvor der er behov for konvertering.

Definition af typen konvertering

Skriv konvertering er automatisk konvertering af en datatype til en anden, når det er nødvendigt, udført eksplicit af kompilatoren. Men der er to betingelser, der skal overholdes inden konvertering af typen.

  • Kilde og destinationstype skal være kompatible.
  • Destinationstypen skal være større end kildetypen.

Disse to betingelser skal være opfyldt for at opnå konvertering af typen, og denne form for konvertering kaldes 'udvidelse af konvertering', da en mindre type konverteres til større type, og udvidelsen af ​​typen opstår. Til denne udvidede konvertering er numeriske typer som 'int', 'float' kompatible med hinanden, mens numerisk til char og boolean eller char til boolean heller ikke er kompatibel.

Eksempel

Dette eksempel giver et bedre overblik over dette

int a = 3; float b; b = a; // værdi i b = 3.000.

Her konverteres 'int' til 'float', som er større end 'int', så der udvides kildetype. Her kræves ingen casting-operatør, da kompilatoren gør det eksplicit.

  1. Den grundlæggende forskel, der adskiller type casting fra type konvertering, er at type casting er konvertering af en type til en anden, udført af programmereren. På den anden side er typekonvertering konvertering af en type til en anden, der udføres af kompilatoren under kompilering.
  2. Type casting kan anvendes på datatyperne, som muligvis ikke er kompatible med hinanden. Omvendt kan typekonvertering kun anvendes på datatyper, der er kompatible med hinanden.
  3. Konvertering af en type til en anden i casting af type kræver casting-operatøren “()”, mens konvertering af en datatype til en anden i type-konvertering ikke kræver nogen operatør.
  4. Mens der konverteres en datatype til en anden i casting af typen, kan destinationstypen være større eller mindre end kildetypen. I modsætning hertil skal destinationstypen være større end kildetypen i typen konvertering.
  5. Konvertering af en type til en anden type udføres under kodning i type casting. I modsætning hertil udføres konvertering af en type til en anden eksplicit under kompilering i typen.
  6. Type-casting kaldes indsnævringskonvertering, fordi her kan destinationstypen være mindre end kildetypen. I modsætning til kaldes typekonvertering udvidet konvertering, fordi her må destinationstypen være større end kildetypen.

Konklusion:

Det kan konkluderes, at typekonvertering og type casting, begge udfører opgaven med at konvertere en datatype til en anden, men adskiller sig i en forstand, at type casting udføres af programmereren, ved hjælp af cast operator () 'og typekonvertering udføres af compileren , og den bruger ikke nogen operatør.