Priporočena, 2024

Izbira Urednika

Razlika med tipanjem in pretvorbo tipa

Dva izraza „tip vlivanja“ in „pretvorba tipa“ se pojavita, ko je treba pretvoriti en tip podatkov v drugega. Ko sta ti dve vrsti združljivi, se pretvorba enega tipa v drugo opravi samodejno s prevajalnikom. Vendar pa obstaja osnovna razlika med konverzijo tipa in tipanjem, tj. Pretvorba tipa se opravi „samodejno“ s prevajalnikom, medtem ko mora programer izrecno „uliti“ tip. Pogovorimo se o razliki tako v obliki ulivanja kot konverzije s pomočjo primerjalne tabele.

Tabela za primerjavo:

Podlaga za primerjavoTip CastingPretvorba tipa
PomenUporabnik dodeli en tip podatkov drugemu uporabniku z uporabo operaterja z oddajanjem, nato pa se imenuje "tip Casting".Prevajanje enega podatkovnega tipa v drugega samodejno s prevajalnikom se imenuje "Type Conversion".
UporabljenoOdlivanje tipov se lahko uporabi tudi za dva "nezdružljiva" podatkovna tipa.Pretvorba tipa lahko izvedete le, če sta dva tipa podatkov združljiva.
OperaterZa prenašanje podatkovnega tipa v drugega je potreben operater vlivanja "()".Operater ni potreben.
Velikost tipov podatkovVrsta cilja je lahko manjša od vrste vira.Tukaj mora biti tip cilja večji od vrste vira.
IzvedenoTo se naredi med načrtovanjem programa.Izvaja se izrecno med prevajanjem.
Vrsta konverzije
Ozka konverzija.Razširitev konverzije.
Primerint a;
bajt b;
...
...
b = (bajt) a;
int a = 3;
float b;
b = a; // vrednost v b = 3.000.

Opredelitev tipa Casting

Odlomek tipa lahko definiramo kot, da programer v času načrtovanja programa odda en tip podatkov v drug podatkovni tip. Samodejna pretvorba enega podatkovnega tipa v drugega ni mogoča ves čas. Lahko je pogoj, da je »tip cilja« manjši od »izvornega tipa«, zato mora programer izrecno oddati večji podatkovni tip na manjši podatkovni tip z uporabo operaterja vlivanja »()«. Ker je večji tip podatkov moduliran na manjši podatkovni tip, se imenuje tudi "zožena konverzija".

Izjava:

 destination_type = (target_type) spremenljivka / vrednost // ciljni tip je vrsta, v kateri želite pretvoriti izvorni tip, ki je vedno ciljni tip. 

Razumimo ga z zgledom. Če želite pretvoriti podatkovni tip 'int' v 'byte', zdaj, ko je 'byte' manjši od 'int', pretvorba tipa ni dovoljena. Tukaj smo morali implicitno pretvoriti 'int' v 'byte' z uporabo operacije casting '()'. Ker je »int« večji od »bajta«, se bo velikost »int« zmanjšala na obseg »int mod byte«.

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

Ko se 'float' pretvori v 'int', se velikost float skrajša, saj 'int' ne shrani delne vrednosti. Če je velikost tipa cilja premajhna, da bi se lahko ujemal z vrsto vira, potem je vrsta vrste modulo tip ciljnega območja 'range'. Casting lahko uporabite tudi, ko so podatkovni tipi združljivi, dobra praksa je, da uporabite ulivanje tipa, kjer koli je potrebna pretvorba tipa.

Definicija pretvorbe tipa

Pretvorba tipa je samodejna pretvorba enega podatkovnega tipa v drugo, kadar je to potrebno, ki jo izrecno izvede prevajalnik. Vendar je treba pred konverzijo tipa izpolniti dva pogoja.

  • Vrsta vira in cilj morata biti združljiva.
  • 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širitev konverzije“, saj se manjši tip pretvori v večji tip, pojavlja se razširitev tipa. Za to razširitev konverzije, so številski tipi kot "int", "float" združljivi med seboj, medtem ko numerično za char in boolean ali char v boolean tudi ni združljivo.

Ta primer bo zagotovil boljši pogled na to

 int a = 3; float 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 vlivanja, saj bo prevajalnik to storil izrecno.

Ključne razlike med tipanjem in pretvorbo

  1. Osnovna razlika, ki ločuje tip preusmeritve od pretvorbe tipa, je, da je litje tipa pretvorba enega tipa v drugega, ki jo izvaja programer. Po drugi strani pa je pretvorba tipa pretvorba enega tipa v drugega, ki jo izvede prevajalnik med prevajanjem.
  2. Odlomek tipa se lahko uporabi za vrste podatkov, ki morda niso medsebojno združljive, vendar se lahko pretvorba tipa uporablja samo za vrste podatkov, ki so med seboj združljive.
  3. Za pretvorbo enega tipa v drugega pri vlivanju tipa je potreben operater vlivanja “()”, medtem ko pretvorba enega tipa podatkov v drugo pri pretvorbi tipa ne zahteva nobenega operaterja.
  4. Pri pretvorbi enega podatkovnega tipa v drugega pri vlivanju tipa je lahko ciljni tip večji ali manjši od vrste vira. Po drugi strani mora biti ciljni tip večji od vrste v pretvorbi tipa.
  5. Pretvorba enega tipa v drug tip se izvede med kodiranjem v obliki vlivanja, medtem ko se pri pretvorbi tipa med prevajanjem izrecno izvede pretvorba enega tipa v drugega.
  6. Odlomek tipa se imenuje zožena konverzija, ker je tukaj lahko ciljni tip manjši od vrste izvora, medtem ko se konverzija tipa imenuje razširitvena konverzija, ker mora biti tukaj ciljni tip večji od vrste vira.

Sklep:

Sklepamo lahko, da konverzija tipa in tip litja opravljata nalogo pretvarjanja enega podatkovnega tipa v drugega, vendar se razlikujeta v smislu, da je litje tipa izvedeno s programerjem, z uporabo operaterja cast (')' in pretvorbo tipa, ki ga opravi prevajalnik in ne uporablja nobenega operaterja.

Top