Skillnaden mellan typgjutning och typkonvertering

Författare: Laura McKinney
Skapelsedatum: 1 April 2021
Uppdatera Datum: 4 Maj 2024
Anonim
Type Casting vs Type Conversion|Difference between Type Casting and Type Conversion
Video: Type Casting vs Type Conversion|Difference between Type Casting and Type Conversion

Innehåll


Den grundläggande skillnaden mellan typkonvertering och typgjutning, dvs typkonvertering görs "automatiskt" av kompilator medan typgjutning ska "uttryckligen göras" av programmeraren.

De två termerna "typgjutning" och "typkonvertering" uppstår när det finns ett behov av att konvertera en datatyp till en annan. När de två typerna är kompatibla med varandra görs omvandlingen av en typ till en annan automatiskt av kompilatorn. Låt oss diskutera skillnaden mellan typgjutning och konvertering med hjälp av jämförelsediagram.

  1. Jämförelsediagram
  2. Definition
  3. Viktiga skillnader
  4. Slutsats

Jämförelsediagram:

Grund för jämförelseSkriv gjutningSkriv konvertering
MenandeEn datatyp tilldelas en annan av användaren, med hjälp av en cast-operatör kallas den "Type Casting".Konvertering av en datatyp till en annan automatiskt av kompilatorn kallas "Typkonvertering".
AppliceradTypgjutning kan också tillämpas på två inkompatibla datatyper.Typkonvertering kan endast implementeras när två datatyper är kompatibla.
OperatörFör att gjuta en datatyp till en annan krävs en gjutningsoperatör ().Ingen operatör krävs.
Storlek på datatyperDestinationstyp kan vara mindre än källtyp.Här måste destinationstypen vara större än källtypen.
GenomfördaDet görs under programutformning.Det görs uttryckligt när man sammanställer.
Konverteringstyp

Begränsande konvertering.Utökad konvertering.
Exempelint a;
byte b;
...
...
b = (byte) a;
int a = 3;
flottör b;
b = a; // värde i b = 3.000.


Definition av typgjutning

Typ gjutning kan definieras som gjutning av en datatyp till en annan datatyp av programmeraren vid tidpunkten för programdesign. Automatisk konvertering av en datatyp till en annan är inte möjlig hela tiden. Det kan vara villkoret att "destinationstypen" är mindre än "källtypen". Därför måste programmeraren kasta den större datatypen uttryckligen till mindre datatyp med hjälp av gjutningsoperatören '()'. Eftersom den större datatypen är modulerad till den mindre datatypen, kallas den också för "begränsande konvertering".

Deklaration:

destination_type = (target_type) variabel / värde // måltyp är en typ där du vill konvertera källtypen, det är alltid destinationstypen.

Exempel

Låt oss förstå det med ett exempel. Du vill konvertera datatypen 'int' till 'byte'. Eftersom 'byte' är mindre än 'int' är typkonvertering inte tillåten. Här var vi tvungna att implicit konvertera 'int' till 'byte' genom att använda casting operator '()'. Eftersom 'int' är större än 'byte' kommer storleken på 'int' att reduceras till intervallet "int mod byte".


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

När 'float' konverteras till 'int' blir floatens storlek avkortat, eftersom 'int' inte lagrar fraktionsvärdet. Om måttypens storlek är för liten för att källtypen ska passa in, är källtypen modulmålstyp "intervall". Gjutning kan också tillämpas när datatyper är kompatibla. Det är god praxis att använda typgjutning där konvertering behövs.

Definition av typkonvertering

Skriv konvertering är den automatiska omvandlingen av en datatyp till en annan när så krävs, görs uttryckligen av kompilatorn. Men det finns två villkor att uppfylla innan konvertering av typ.

  • Källa och destinationstyp måste vara kompatibla.
  • Destinationstypen måste vara större än källtypen.

Dessa två villkor bör uppfylla för att uppnå typkonvertering, och den här typen av konvertering kallas "breddande konvertering", eftersom en mindre typ konverteras till större typ, breddning av typ inträffar. För denna utvidgade konvertering är numeriska typer som 'int', 'float' kompatibla med varandra medan siffror till char och boolean eller char till boolean inte heller är kompatibla.

Exempel

Detta exempel ger en bättre bild av detta

int a = 3; flottör b; b = a; // värde i b = 3.000.

Här konverteras 'int' till 'float', som är större än 'int', så att källtypen utvidgas. Här krävs ingen gjutningsoperatör eftersom kompilatorn gör det uttryckligen.

  1. Den grundläggande skillnaden som skiljer typgjutning från typkonvertering är att typgjutning är omvandlingen av en typ till en annan, utförd av programmeraren. Å andra sidan är typomvandlingen konvertering av en typ till en annan, utförd av kompilatorn under sammanställningen.
  2. Typgjutning kan tillämpas på datatyperna, som kanske inte är kompatibla med varandra. Omvänt kan typkonvertering endast tillämpas på datatyper som är kompatibla med varandra.
  3. Konvertering av en typ till en annan i casting av typ kräver casting-operatören "() medan konvertering av en datatyp till en annan i typkonvertering inte kräver någon operatör.
  4. Vid konvertering av en datatyp till en annan i casting av typen kan destinationstypen vara större eller mindre än källtypen. I motsats till detta måste destinationstypen vara större än källtypen i typkonvertering.
  5. Konvertering av en typ till en annan typ görs under kodning i typgjutning. Däremot, vid typkonvertering, görs konverteringen av en typ till en annan uttryckligen under sammanställningen.
  6. Typgjutning kallas förminskningskonvertering eftersom här kan måltypen vara mindre än källtypen. Till skillnad från, kallas typkonvertering breddningskonvertering eftersom här måste måttypen vara större än källtypen.

Slutsats:

Det kan dras slutsatsen att typkonvertering och typgjutning, båda utför uppgiften att konvertera en datatyp till en annan, men skiljer sig på ett sätt att typgjutning utförs av programmeraren, med hjälp av cast operator () 'och typkonvertering görs av kompilatorn , och det använder ingen operatör.