Verschil tussen Type Casting en Type Conversion

Schrijver: Laura McKinney
Datum Van Creatie: 1 April 2021
Updatedatum: 4 Kunnen 2024
Anonim
What is a Single Malt Whisky? - What you need to know
Video: What is a Single Malt Whisky? - What you need to know

Inhoud


Het basisverschil tussen typeconversie en typecasting, d.w.z. typeconversie wordt "automatisch" gemaakt door de compiler, terwijl typecasting door de programmeur "expliciet wordt gedaan".

De twee termen "type casting" en "type conversie" komen voor wanneer het nodig is om het ene gegevenstype naar het andere te converteren. Wanneer de twee typen compatibel zijn, wordt de conversie van het ene type naar het andere automatisch uitgevoerd door de compiler. Laten we het verschil tussen type-casting en conversie bespreken met behulp van een vergelijkingstabel.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel:

Basis voor vergelijkingType CastingType conversie
BetekenisHet ene gegevenstype wordt door de gebruiker aan een ander gegeven, met behulp van een cast-operator, en dit wordt "Type Casting" genoemd.Conversie van het ene gegevenstype naar het andere door de compiler wordt "Type Conversion" genoemd.
ToegepastType casting kan ook worden toegepast op twee incompatibele gegevenstypen.Typeconversie kan alleen worden geïmplementeerd wanneer twee gegevenstypen compatibel zijn.
operatorVoor het casten van een gegevenstype naar een ander is een castingoperator () vereist.Geen operator vereist.
Grootte van gegevenstypenBestemmingstype kan kleiner zijn dan brontype.Hier moet het bestemmingstype groter zijn dan het brontype.
GeïmplementeerdHet wordt gedaan tijdens het ontwerpen van programma's.Het wordt expliciet gedaan tijdens het compileren.
Conversietype

Versmallende conversie.Verbreding conversie.
Voorbeeldint een;
byte b;
...
...
b = (byte) a;
int a = 3;
zweven b;
b = a; // waarde in b = 3.000.


Definitie van Type Casting

Type casting kan worden gedefinieerd als, gieten van het ene gegevenstype naar een ander gegevenstype, door de programmeur, ten tijde van het programmaontwerp. Automatische conversie van het ene gegevenstype naar het andere is niet altijd mogelijk. Het kan de voorwaarde zijn dat het 'doeltype' kleiner is dan het 'brontype'. Daarom moet de programmeur het grotere gegevenstype expliciet naar een kleiner gegevenstype casten met behulp van de castingoperator ‘()’. Omdat het grotere gegevenstype wordt gemoduleerd naar het kleinere gegevenstype, wordt dit ook ‘versmallingsconversie’ genoemd.

Verklaring:

destination_type = (target_type) variabele / waarde // doeltype is een type waarin u het brontype wilt converteren, het is altijd het doeltype.

Voorbeeld

Laten we het begrijpen met een voorbeeld. U wilt het gegevenstype ‘int’ omzetten naar ‘byte’. Omdat ‘byte’ kleiner is dan ‘int’, is typeconversie niet toegestaan. Hier moesten we impliciet ‘int’ in ‘byte’ converteren met behulp van de castingoperator ‘()’. Omdat ‘int’ groter is dan ‘byte’, wordt de grootte van ‘int’ teruggebracht tot het bereik “int mod byte”.


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

Wanneer de ‘float’ wordt geconverteerd naar ‘int’, wordt de grootte van de float afgekapt, omdat ‘int’ de fractionele waarde niet opslaat. Als de grootte van het doeltype te klein is om in het brontype te passen, is het brontype het modulo-doeltype ‘bereik’. Casting kan ook worden toegepast wanneer gegevenstypen compatibel zijn. Het is een goede gewoonte om type casting te gebruiken waar typeconversie nodig is.

Definitie van typeconversie

Type conversie is de automatische conversie van het ene gegevenstype naar het andere wanneer dat nodig is, expliciet gedaan door de compiler. Maar er zijn twee voorwaarden waaraan moet worden voldaan voordat het type wordt geconverteerd.

  • Bron en bestemmingstype moeten compatibel zijn.
  • Het doeltype moet groter zijn dan het brontype.

Aan deze twee voorwaarden moet worden voldaan om typeconversie te bereiken, en dit soort conversie wordt ‘verbredingsconversie’ genoemd, omdat een kleiner type wordt geconverteerd naar een groter type, treedt verbreding van het type op. Voor deze verbredende conversie zijn numerieke typen als ‘int’, ‘float’ compatibel met elkaar, terwijl numeriek naar char en boolean of char naar boolean ook niet compatibel is.

Voorbeeld

Dit voorbeeld geeft hiervan een beter beeld

int a = 3; zweven b; b = a; // waarde in b = 3.000.

Hier wordt ‘int’ geconverteerd naar ‘float’ die groter is dan ‘int’, dus er treedt een verbreding van het brontype op. Hier is geen castingoperator vereist omdat de compiler dit expliciet doet.

  1. Het basisverschil dat typecasting van typeconversie onderscheidt, is dat typecasting de conversie is van het ene type naar het andere, uitgevoerd door de programmeur. Aan de andere kant is de typeconversie de conversie van het ene type naar het andere, gedaan door de compiler tijdens het compileren.
  2. Type casting kan worden toegepast op de gegevenstypen, die mogelijk niet compatibel zijn met elkaar. Omgekeerd kan typeconversie alleen worden toegepast op de gegevenstypen die compatibel zijn met elkaar.
  3. De conversie van het ene type naar het andere in type casting vereist de castingoperator “()” terwijl de conversie van het ene datatype naar een ander in type-conversie geen operator vereist.
  4. Bij het converteren van het ene gegevenstype naar het andere in type casting, kan het bestemmingstype groter of kleiner zijn dan het brontype. In tegenstelling hiermee moet het doeltype groter zijn dan het brontype bij typeconversie.
  5. De conversie van het ene type naar een ander type gebeurt tijdens het coderen in type casting. Bij typeconversie wordt de conversie van het ene type naar het andere daarentegen expliciet tijdens de compilatie uitgevoerd.
  6. Type casting wordt versmallingsconversie genoemd omdat hier het bestemmingstype kleiner kan zijn dan het brontype. In tegenstelling tot typeconversie wordt verbredingsconversie genoemd omdat hier het doeltype groter moet zijn dan het brontype.

Gevolgtrekking:

Geconcludeerd kan worden dat typeconversie en typecasting beide de taak van het converteren van het ene gegevenstype naar de andere uitvoeren, maar verschillen in een zin dat typecasting wordt uitgevoerd door de programmeur, met behulp van cast-operator () 'en typeconversie wordt gedaan door de compiler , en het gebruikt geen enkele operator.