Anbefalet, 2024

Redaktørens Valg

Forskel mellem Type Casting og Type Conversion

De to udtryk "type casting" og "type conversion" forekommer, når der er behov for at konvertere en datatype til en anden. Når de to typer er kompatible med hinanden, foretages konverteringen af ​​den ene type til den anden automatisk af kompilatoren. Der er dog en grundlæggende forskel mellem typeomformning og typeafstøbning, dvs. type konvertering udføres "automatisk" af kompilatoren, mens type casting skal "eksplicit færdig" af programmøren. Lad os diskutere forskellen både type casting og konvertering ved hjælp af sammenligning diagram.

Sammenligningstabel:

Grundlag for sammenligningType CastingType Konvertering
BetyderEn datatype er tildelt 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 kaldes "Typekonvertering".
AnvendtType støbning kan også anvendes på to "inkompatible" datatyper.Typekonvertering kan kun implementeres, når to datatyper er "kompatible".
OperatørFor at caste en datatype til en anden, kræves en casting operator '()'.Ingen operatør kræves.
Størrelse af datatyperDestinations type kan være mindre end kilde type.Her skal destinationstypen være større end kildetype.
implementeretDet gøres under programdesign.Det gøres eksplicit under kompilering.
Konverteringstype
Narrowing konvertering.Forøgelse af 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 støbning af en datatype til en anden datatype, af programmøren, på tidspunktet for programdesign. Aa automatisk konvertering af en datatype til en anden, er ikke muligt hele tiden. Det kan være en betingelse, at "destinationstypen" er mindre end "source type", så programmøren skal eksplicit afgive den større datatype til mindre datatype ved hjælp af støbningsoperatøren '()'. Da den større datatype moduleres til den mindre datatype, kaldes den også 'indsnævringskonvertering'.

Erklæring:

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

Lad os forstå det med et eksempel. Du vil konvertere datatypen 'int' til 'byte', nu, da 'byte' er mindre end 'int', er konvertering af typen ikke tilladt. Her måtte vi implicit konvertere 'int' til 'byte' ved at bruge casting operator '()'. Da 'int' er større end 'byte', vil størrelsen af ​​'int' blive reduceret til 'int mod byte'-området.

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

Når "float" konverteres til "int", bliver floatens størrelse afkortet, da 'int' ikke opbevarer brøkværdien. Hvis størrelsen på destinationstypen er for lille, for at kildetypen kan passe ind, er kildetype modulo destination type 'range'. Støbning kan også anvendes, når datatyper er kompatible, det er god praksis at bruge støbegods, hvor der er brug for typekonvertering.

Definition af Type Konvertering

Type konvertering er den automatiske konvertering af en datatype til en anden, når det kræves, udført eksplicit af kompilatoren. Men der er to betingelser, der skal opfyldes før typekonvertering.

  • Kilde og destinationstype skal være kompatibel.
  • Destinations type skal være større end kilde type.

Disse to betingelser bør tilfredsstille for at opnå konvertering af typen, og denne form for omdannelse kaldes "udvidet konvertering", da en mindre type omdannes til større type, forekommer udvidelsen af ​​typen. Til denne udvidede konvertering er numeriske typer som 'int', 'float' kompatible med hinanden, mens numeriske til char og boolean eller char til boolean også er ikke kompatibel.

Dette eksempel giver et bedre billede af dette

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

Her omdannes 'int' til 'float', som er større end 'int', så der sker en udvidelse af kildetype. Her er ingen casting operatør påkrævet, da kompilatoren vil gøre det eksplicit.

Nøgleforskelle mellem Type Casting og Conversion

  1. Den grundlæggende forskel, der adskiller typestøbning fra typekonvertering, er, at typen af ​​støbning er omdannelse af en type til en anden, udført af programmereren. På den anden side er typekonvertering konverteringen af ​​en type til en anden, udført af kompilatoren under kompilering.
  2. Type støbning kan anvendes til datatyperne, som muligvis ikke er kompatible med hinanden, men type konvertering kan kun anvendes til datatyper, som er kompatible med hinanden.
  3. Konvertering af en type til en anden i typen støbning kræver støbningsoperatøren "()", mens konverteringen af ​​en datatype til en anden i typeomdannelse ikke kræver nogen operatør.
  4. Mens konvertering af en datatype til en anden i typen støbning, kan destinationstypen være større eller mindre end kildetypen. På den anden side skal destinationstypen være større end kildetypen i typekonvertering.
  5. Konvertering af en type til en anden type udføres under kodning i typeafstøbning, mens konvertering af en type til en anden i typekonvertering sker eksplicit under kompilering.
  6. Typestøbning kaldes indsnævringskonvertering, fordi destinationstypen her kan være mindre end kildetype, mens typekonvertering kaldes udvidelse af konvertering, fordi destinationstypen her skal være større end kildetypen.

Konklusion:

Det kan konkluderes, at typen af ​​konvertering og type støbning både udfører opgaven med at omdanne en datatype til en anden, men adskiller sig på den måde, at typen støbning udføres af programmøren, ved hjælp af cast operator '()' og typekonvertering foretages af compiler, og det bruger ikke nogen operatør.

Top