Rozdíl mezi odléváním typu a převodem typu

Autor: Laura McKinney
Datum Vytvoření: 1 Duben 2021
Datum Aktualizace: 4 Smět 2024
Anonim
Rozdíl mezi odléváním typu a převodem typu - Technologie
Rozdíl mezi odléváním typu a převodem typu - Technologie

Obsah


Základní rozdíl mezi převodem typu a odléváním typu, tj. Převodem typu se provádí „automaticky“ kompilátorem, zatímco odlévání typu má být „explicitně provedeno“ programátorem.

Dva termíny „casting typu“ a „konverze typu“ se vyskytují, když je třeba převést jeden datový typ na jiný. Pokud jsou oba typy vzájemně kompatibilní, provede se převod jednoho typu na druhý automaticky kompilátorem. Pojďme diskutovat o rozdílech typu casting i konverze pomocí srovnávací tabulky.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka:

Základ pro srovnáníTyp OdléváníZadejte převod
VýznamJeden datový typ je přiřazen jinému uživateli pomocí operátora sádry a pak se nazývá "Casting typu".Převod jednoho datového typu na jiný automaticky kompilátorem se nazývá "Převod typu".
AplikovanýTyp casting lze také použít na dva nekompatibilní datové typy.Převod typu lze provést pouze tehdy, jsou-li kompatibilní dva typy dat.
OperátorPro přetypování datového typu na jiný je vyžadován operátor casting ().Není vyžadován žádný operátor.
Velikost datových typůTyp cíle může být menší než typ zdroje.Zde musí být typ cíle větší než typ zdroje.
ImplementovánoDěje se to během návrhu programu.To se provádí explicitně při kompilaci.
Typ převodu

Úzká konverze.Rozšíření konverze.
Příkladint a;
byte b;
...
...
b = (bajt) a;
int a = 3;
float b;
b = a; // hodnota v b = 3.000.


Definice odlévání typu

Typ lití může být definován jako odlévání jednoho datového typu na jiný datový typ programátorem v době návrhu programu. Automatická konverze jednoho datového typu na jiný není vždy možná. Může být podmínkou, že „typ cíle“ je menší než „typ zdroje“. Programátor proto musí přetypovat větší datový typ explicitně na menší datový typ pomocí operátoru casting ‘() '. Protože větší datový typ je modulován na menší datový typ, nazývá se také „zúžená konverze“.

Prohlášení:

destination_type = (target_type) proměnná / hodnota // target type je typ, ve kterém chcete převést typ zdroje, je to vždy cílový typ.

Příklad

Rozumíme tomu s příkladem. Chcete převést datový typ „int“ na „byte“. Nyní, protože „byte“ je menší než „int“, není převod typu povolen. Zde jsme museli implicitně převést "int" na "byte" pomocí operátoru casting (")". Protože „int“ je větší než „byte“, velikost „int“ se sníží na rozsah „int mod byte“.


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

Když je „float“ převeden na „int“, velikost float se zkrátí, protože „int“ neuloží zlomkovou hodnotu. Pokud je velikost typu cíle příliš malá na to, aby se do něj vešel typ zdroje, pak je typ zdroje modulo typu určení „range“. Odlévání lze použít také v případě, že jsou datové typy kompatibilní. Doporučujeme používat odlévání typu všude tam, kde je potřeba převést typ.

Definice převodu typu

Převod typu je automatická konverze jednoho datového typu na jiný, kdykoli je to nutné, a to explicitně kompilátorem. Před konverzí typu však musí být splněny dvě podmínky.

  • Typ zdroje a cíl musí být kompatibilní.
  • Typ cíle musí být větší než typ zdroje.

Tyto dvě podmínky by měly splňovat, aby se dosáhlo převodu typu, a tento druh převodu se nazývá „rozšiřující konverze“, protože menší typ se převádí na větší typ, dochází k rozšiřování typu. Pro tuto rozšiřující se konverzi jsou číselné typy jako „int“, „float“ vzájemně kompatibilní, zatímco číselné znaky na char a boolean nebo char na boolean také nejsou kompatibilní.

Příklad

Tento příklad poskytne lepší přehled

int a = 3; float b; b = a; // hodnota v b = 3.000.

Zde je „int“ převedeno na „float“, které je větší než „int“, takže dochází k rozšiřování typu zdroje. Zde není vyžadován žádný operátor odlévání, protože kompilátor to udělá explicitně.

  1. Základní rozdíl, který odlišuje odlévání typu od převodu typu, je, že odlévání typu je převod jednoho typu na druhý, prováděný programátorem. Na druhé straně je převod typu převod jednoho typu na druhý, prováděný kompilátorem při kompilaci.
  2. Odlitky typu lze použít na datové typy, které nemusí být vzájemně kompatibilní. Naopak, převod typu lze použít pouze na datové typy, které jsou vzájemně kompatibilní.
  3. Převod jednoho typu na jiný v typovém odlévání vyžaduje operátora lití „()“, zatímco převod jednoho datového typu na jiný typ převodu nevyžaduje žádného operátora.
  4. Při převodu jednoho typu dat na jiný typ při odlévání typu může být cílový typ větší nebo menší než typ zdroje. Na rozdíl od toho musí být typ cíle větší než typ zdroje při převodu typu.
  5. Převod jednoho typu na jiný typ se provádí při kódování při odlévání typu. Naproti tomu při převodu typu se převod jednoho typu na jiný provádí explicitně během kompilace.
  6. Typ casting se nazývá konverze zúžení, protože zde může být typ cíle menší než typ zdroje. Na rozdíl od toho se typová konverze nazývá rozšiřující se konverze, protože zde musí být typ cíle větší než typ zdroje.

Závěr:

Lze vyvodit závěr, že převod typu i odlévání typu provádí úlohu převodu jednoho datového typu na jiný, ale liší se v tom smyslu, že odlévání typu provádí programátor pomocí operátoru obsazení () 'a převod typu provádí kompilátor. a nepoužívá operátora.