Rekommenderas, 2024

Redaktionen

Skillnad mellan typ gjutning och typkonvertering

De två termen "typgjutning" och "typkonvertering" inträffar när det är nödvändigt att konvertera en datatyp till en annan. När de två typerna är kompatibla med varandra görs konverteringen av en typ till en annan automatiskt av kompilatorn. Det finns emellertid en grundläggande skillnad mellan typkonvertering och typgjutning, dvs typkonvertering görs automatiskt av kompilator medan typgodkännandet ska "explicit avslutas" av programmeraren. Låt oss diskutera skillnaden både typ gjutning och konvertering med hjälp av jämförelse diagram.

Jämförelsediagram:

Grunder för jämförelseTyp gjutningTypkonvertering
MenandeEn datatyp är tilldelad till en annan av användaren, med hjälp av en cast-operatör, då kallas den "Typ Casting".Omvandling av en datatyp till en annan automatiskt av kompilatorn kallas "Typkonvertering".
AppliceradTypgjutning kan också tillämpas på två "inkompatibla" datatyper.Typkonvertering kan endast genomföras när två datatyper är "kompatibla".
OperatörFör att casta en datatyp till en annan krävs en casting operator '()'.Ingen operatör krävs.
Storlek på datatyperDestinations typ kan vara mindre än källtyp.Här måste destinationstypen vara större än källtyp.
GenomfördaDet görs under programdesign.Det görs exakt under sammansättningen.
Konverteringstyp
Narrowing konvertering.Fördjupning konvertering.
Exempelint a;
byte b;
...
...
b = (byte) a;
int a = 3;
float b;
b = a; // värde i b = 3.000.

Definition av typ Casting

Typgjutning kan definieras som gjutning av en datatyp till en annan datatyp, av programmeraren, vid tidpunkten för programdesign. Aa 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", så programmeraren måste uttryckligen ställa den större datatypen till mindre datatyp med gjutningsoperatorn "()". Eftersom den större datatypen moduleras till den mindre datatypen kallas den också förminskningsomvandling.

Deklaration:

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

Låt oss förstå det med ett exempel. Du vill konvertera datatypen "int" till "byte", nu, eftersom "byte" är mindre än "int", är typkonvertering inte tillåtet. Här måste vi implicit konvertera 'int' till 'byte' genom att använda casting operator '()'. Eftersom "int" är större än "byte", kommer storleken på "int" att minskas till "int mod byte" -området.

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

När "float" konverteras till "int", blir floatens storlek avkortad, eftersom "int" inte lagrar fraktionsvärdet. Om storleken på destinationstypen är för liten för att källtypen ska passa in, är källtypen modulo destinationstyp 'range'. Gjutning kan också tillämpas när datatyper är kompatibla, det är bra att använda typgjutning varhelst typkonvertering behövs.

Definition av typkonvertering

Typkonvertering är automatisk omvandling av en datatyp till en annan när det behövs, gjort explicit av kompilatorn. Men det finns två förutsättningar att vara nöjda inför typkonvertering.

  • Källan och destinationstypen måste vara kompatibla.
  • Destinations typ måste vara större än källtyp.

Dessa två villkor bör tillgodose för att uppnå typkonvertering, och denna typ av omvandling kallas för "utvidgning av omvandling", eftersom en mindre typ omvandlas till större typ uppträder en utvidgning av typen. För denna bredare konvertering är numeriska typer som "int", "float" kompatibla med varandra medan numeriska till char och boolean eller char till boolean inte heller är kompatibel.

Detta exempel kommer att ge en bättre bild av detta

 int a = 3; float b; b = a; // värde i b = 3.000. 

Här omvandlas "int" till "float" som är större än "int", så det sker en utvidgning av källtypen. Här krävs ingen casting operatör eftersom kompilatorn kommer att göra det explicit.

Viktiga skillnader mellan typ gjutning och konvertering

  1. Den grundläggande skillnaden som skiljer typgjutning från typkonvertering är den typen av gjutning som är omvandling av en typ till en annan, gjord av programmeraren. Å andra sidan är typkonverteringen konvertering av en typ till en annan, utförd av kompilatorn under sammansättningen.
  2. Typgjutning kan appliceras på datatyperna som kanske inte är kompatibla med varandra, men typkonvertering kan endast tillämpas på datatyper som är kompatibla med varandra.
  3. Omvandlingen av en typ till en annan i typgjutning kräver gjutningsoperatören "()" medan omvandlingen av en datatyp till en annan vid typkonvertering inte kräver någon operatör.
  4. Medan konvertering av en datatyp till en annan i typgjutning kan destinationstypen vara större eller mindre än källtypen. Å andra sidan måste destinationstypen vara större än källtypen i typkonvertering.
  5. Konverteringen av en typ till en annan typ görs under kodning vid typgjutning, medan konvertering av en typ till en annan under typkonvertering sker explicit under sammanställningen.
  6. Typgjutning kallas förminskningsomvandling eftersom här kan destinationstypen vara mindre än källtyp medan typkonvertering kallas för utvidgningsomvandling eftersom här måste destinationstypen vara större än källtypen.

Slutsats:

Man kan dra slutsatsen att typkonvertering och typgjutning utföra uppgiften att konvertera en datatyp till en annan men skilja sig på ett sätt som typen av gjutning görs av programmeraren, med användning av cast operator '()' och typkonvertering görs av kompilator, och det använder ingen operatör.

Top