Jämförelsediagram:
Grunder för jämförelse | Typ gjutning | Typkonvertering |
---|---|---|
Menande | En 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". |
Applicerad | Typgjutning kan också tillämpas på två "inkompatibla" datatyper. | Typkonvertering kan endast genomföras när två datatyper är "kompatibla". |
Operatör | För att casta en datatyp till en annan krävs en casting operator '()'. | Ingen operatör krävs. |
Storlek på datatyper | Destinations typ kan vara mindre än källtyp. | Här måste destinationstypen vara större än källtyp. |
Genomförda | Det görs under programdesign. | Det görs exakt under sammansättningen. |
Konverteringstyp | Narrowing konvertering. | Fördjupning konvertering. |
Exempel | int 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.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.