Doporučená, 2024

Redakce Choice

Rozdíl mezi odlitkem typu a konverzí typu

Dva termíny „odlévání typu“ a „konverze typu“ se vyskytují, když je potřeba převést jeden typ dat na jiný. Jsou-li tyto dva typy vzájemně kompatibilní, provádí se převod jednoho typu na jiný automaticky kompilátorem. Existuje však základní rozdíl mezi převodem typu a odlitkem typu, tj. Typová konverze se provádí „automaticky“ pomocí kompilátoru, zatímco programování musí být „odlitkem typu“ výslovně provedeno programátorem. Pojďme diskutovat rozdíl jak typu casting a konverze pomocí srovnávací tabulky.

Tabulka porovnání:

Základ pro porovnáníTyp OdléváníKonverze typu
VýznamJeden typ dat je přiřazen jinému uživateli, pomocí operátoru obsazení, potom se nazývá "Typ Casting".Převod jednoho datového typu na jiný automaticky kompilátorem se nazývá "Typová konverze".
AplikovanýOdlévání typu lze také aplikovat na dva „nekompatibilní“ typy dat.Převod typu lze implementovat pouze tehdy, když jsou dva typy dat „kompatibilní“.
OperátorPro odlévání datového typu na jiný je vyžadován operátor odlévání.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 cílový typ větší než typ zdroje.
RealizovánoProvádí se při návrhu programu.To se provádí explicitně při kompilaci.
Typ konverze
Úzká konverze.Rozšíření konverze.
Příkladint a;
bajt b;
...
...
b = (byte) a;
int a = 3;
float b;
b = a; // hodnota v b = 3.000.

Definice odlévání typu

Odlévání typu lze definovat 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í po celou dobu možná. Může se jednat o podmínku, že „cílový typ“ je menší než „zdrojový typ“, takže programátor musí explicitně přenést větší datový typ na menší datový typ pomocí operátoru odlévání. Vzhledem k tomu, ž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 // cílový typ je typ, ve kterém chcete převést typ zdroje, který je vždy typem cíle. 

Pochopme to s příkladem. Chcete převést datový typ 'int' na 'bajt', nyní, protože 'bajt' je menší než 'int', konverze typu není povolena. Zde jsme museli implicitně převést 'int' na 'byte' pomocí operátoru casting '()'. Jelikož 'int' je větší než 'byte', velikost 'int' bude zmenšena na rozsah "int mod byte".

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

Když je 'float' převeden na 'int', velikost float se zkrátí, protože 'int' neuloží zlomkovou hodnotu. Pokud je velikost cílového typu příliš malá pro typ zdroje, do kterého se vejde, pak je zdrojový typ modulo cílový typ 'range'. Odlévání může být také použito, když jsou datové typy kompatibilní, je vhodné používat odlévání typu tam, kde je nutná konverze typu.

Definice konverze typu

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

  • Zdrojový a cílový typ 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 konverze typu, a tento druh přeměny se nazývá „rozšiřující konverze“, protože menší typ se převádí na větší typ, dochází k rozšíření typu. Pro tuto rozšiřující se konverzi jsou numerické typy jako 'int', 'float' vzájemně kompatibilní, zatímco numerické na char a boolean nebo char na boolean nejsou také kompatibilní.

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šíření zdroje. Zde není nutný žádný operátor odlévání, protože kompilátor to udělá explicitně.

Klíčové rozdíly mezi typem odlévání a konverzí

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

Závěr:

Lze usuzovat, že konverze typu a odlévání typu provádějí ú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řevodu typu provádí uživatel. kompilátoru a nepoužívá žádný operátor.

Top