Razlika med ulivanjem tipa in pretvorbo tipov
Vsebina
Osnovno razliko med pretvorbo tipa in vnosom tipov, tj. Pretvorbo tipa "avtomatsko" opravi prevajalnik, medtem ko mora programski odliv "izrecno narediti".
Dva izraza "uvajanje tipa" in "pretvorba vrst" se pojavita, kadar je treba pretvoriti eno vrsto podatkov v drugo. Ko sta obe vrsti združljivi med seboj, potem prevajalnik pretvori eno vrsto v drugo samodejno. Razpravljajmo o razliki vlivanja in pretvorbe vrst s pomočjo primerjalne tabele.
- Primerjalna tabela
- Opredelitev
- Ključne razlike
- Zaključek
Primerjalna tabela:
Osnove za primerjavo | Vlivanje tipa | Vrsta pretvorbe |
---|---|---|
Pomen | Uporabnik eno vrsto podatkov dodeli drugemu s pomočjo operaterja cast, potem se imenuje "Casting Type". | Prevajalnik samodejno pretvorbo ene vrste podatkov v drugo sam imenuje "Type Conversion". |
Uporablja se | Kasting tipa se lahko uporabi tudi za dve nezdružljivi podatkovni vrsti. | Pretvorba tipa se lahko izvede samo, če sta združljivi dve podatkovni vrsti. |
Operater | Za oddajanje podatkovne vrste drugemu je potreben operater vlivanja (). | Noben operater ni potreben. |
Velikost podatkovnih vrst | Vrsta cilja je lahko manjša od vrste vira. | Tu mora biti ciljna vrsta večja od vrste vira. |
Izvedeno | Izvaja se med načrtovanjem programa. | Izvaja se izrecno med sestavljanjem. |
Vrsta pretvorbe | Ozko konverzija. | Širitev pretvorbe. |
Primer | int a; bajta b; ... ... b = (bajt) a; | int a = 3; plovec b; b = a; // vrednost v b = 3.000. |
Opredelitev tipa litja
Vlivanje tipa lahko definira kot, vstavljanje ene podatkovne vrste v drugo vrsto podatkov, s strani programerja v času oblikovanja programa. Samodejna pretvorba ene vrste podatkov v drugo ni možna ves čas. Morda je pogoj, da je „ciljna vrsta“ manjša od „vrste vira“. Zato mora programer večjo vrsto podatkov izrecno oddati v manjši tip podatkov s pomočjo operaterja za oddajanje "()". Ker je večja vrsta podatkov modulirana na manjšo vrsto podatkov, jo imenujemo tudi "zožitev pretvorbe".
Izjava:target_type = (target_type) spremenljivka / vrednost // target type je tip, v katerem želite pretvoriti izvorni tip, vedno je ciljni tip.
Primer
Razložimo ga s primerom. Podatkovni tip "int" želite pretvoriti v "bajt". Ker je "bajt" manjši od "int", pretvorba vrst ni dovoljena. Tu smo morali implicitno pretvoriti "int" v "bajt" z uporabo operaterja za uvajanje "()". Ker je 'int' večji od 'byte', se velikost 'int' zmanjša na obseg 'int mod byte'.
int a; bajta b; ... ... b = (bajt) a;
Ko se „float“ pretvori v „int“, se velikost floata skrajša, saj „int“ ne shrani delne vrednosti. Če je velikost ciljne vrste premajhna, da bi se vrsta vira lahko vklopila, je vrsta vira ciljni tip modula „obseg“. Predvajanje se lahko uporabi tudi, če so tipi podatkov združljivi. Lestitev tipov je dobra uporaba, kjer koli je potrebna pretvorba vrst.
Opredelitev pretvorbe tipa
Pretvorba tipa je samodejna pretvorba ene vrste podatkov v drugo, kadar to zahteva izrecno, prevajalnik. Pred pretvorbo tipa morata biti izpolnjena dva pogoja.
- Izvorni in ciljni tip morata biti združljivi.
- Vrsta cilja mora biti večja od vrste vira.
Ta dva pogoja morata izpolnjevati, da se doseže pretvorba tipa, in ta vrsta pretvorbe se imenuje "razširjena pretvorba", saj se manjši tip pretvori v večji tip, pride do širitve tipa. Za to razširjeno pretvorbo so numerične vrste kot "int", "float" kompatibilne med seboj, medtem ko numerične do char in boolean ali char to boolean prav tako niso združljive.
Primer
Ta primer bo omogočil boljši prikaz tega
int a = 3; plovec b; b = a; // vrednost v b = 3.000.
Tu se 'int' pretvori v 'float', ki je večji od 'int', zato pride do razširitve vrste vira. Tukaj ni potreben noben operater uvajanja, saj bo prevajalnik to izrecno storil.
- Osnovna razlika, ki razlikuje vlivanje tipov od pretvorbe vrst, je, da je litje tipa pretvorba ene vrste v drugo, ki jo opravi programer. Po drugi strani je pretvorba tipa pretvorba ene vrste v drugo, ki jo opravi prevajalnik med prevajanjem.
- Vlivanje tipa se lahko uporabi za podatkovne tipe, ki morda niso združljivi med seboj. Nasprotno pa se pretvorba vrst lahko uporabi samo za podatkovne tipe, ki so med seboj kompatibilni.
- Za pretvorbo ene vrste v drugo v uvajanju tipa je potreben operater vlivanja "()", medtem ko pretvorba ene vrste podatkov v drugo v pretvorbi tipa ne potrebuje nobenega operaterja.
- Med pretvorbo ene vrste podatkov v drugo pri predvajanju vrst je ciljni tip lahko večji ali manjši od vrste vira. V nasprotju s tem mora biti ciljna vrsta večja od vrste v pretvorbi tipa.
- Pretvorba ene vrste v drugo se izvede pri kodiranju v ulivanju tipa. Nasprotno pa se pri pretvorbi tipa pretvorba ene vrste v drugo opravi izrecno med prevajanjem.
- Ulivanje tipa se imenuje zožitev pretvorbe, ker je tukaj vrsta cilja lahko manjša od vrste vira. V nasprotju s tem se pretvorba tipa imenuje razširjena pretvorba, ker mora biti tukaj vrsta cilja večja od vrste vira.
Zaključek:
Sklepamo lahko, da pretvorba tipa in uvajanje tipa opravljata nalogo pretvorbe ene podatkovne vrste v drugo, vendar se razlikujeta v smislu, da vlivanje tipa opravi programer z uporabo operaterja cast () in pretvorbo tipa opravi prevajalnik , in ne uporablja nobenega operaterja.