Razlika između lijevanja tipa i pretvorbe tipa

Autor: Laura McKinney
Datum Stvaranja: 1 Travanj 2021
Datum Ažuriranja: 4 Svibanj 2024
Anonim
ULOGA INZULINA I GLUKAGONA U REGULACIJA GLUKOZE U KRVI, DIJABETES TIP 1 i TIP 2, ENDOKRINI PANKREAS
Video: ULOGA INZULINA I GLUKAGONA U REGULACIJA GLUKOZE U KRVI, DIJABETES TIP 1 i TIP 2, ENDOKRINI PANKREAS

Sadržaj


Osnovna razlika između pretvorbe tipa i lijevanja tipa, tj. Pretvorbu tipa vrši "automatski" prevodilac, dok programer treba izričito izraditi livenje tipa.

Dva izraza "lijevanje tipa" i "pretvorba tipa" nastaju kada postoji potreba za pretvorbom jedne vrste podataka u drugu. Kad su dvije vrste kompatibilne jedna s drugom, tada prevoditelj jednu vrstu pretvori u drugu. Razgovarajmo o razlici lijevanja i pretvorbe tipa uz pomoć usporednog grafikona.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Uporedni grafikon:

Osnove za usporedbuLijevanje tipaVrsta pretvorbe
ZnačenjeKorisnik jedan tip podataka dodjeljuje drugom korisniku, pomoću operatora cast, a zatim se naziva "Tip Casting".Pretvaranje jedne vrste podataka u drugu automatski od strane prevoditelja naziva se "Pretvorba tipa".
primijenjenPrebacivanje tipa također se može primijeniti na dvije nespojive vrste podataka.Pretvorba tipa može se provesti samo ako su dvije vrste podataka kompatibilne.
OperaterZa emitiranje vrste podataka na drugi, potreban je operator lijevanja ().Ne zahtijeva operater.
Veličina vrsta podatakaVrsta odredišta može biti manja od vrste izvora.Ovdje vrsta odredišta mora biti veća od vrste izvora.
ProvodiIzvodi se tijekom dizajniranja programa.Izvodi se izričito tijekom sastavljanja.
Vrsta pretvorbe

Sužavanje pretvorbe.Proširenje pretvorbe.
Primjerint a;
bajt b;
...
...
b = (bajt) a;
int a = 3;
plutati b;
b = a; // vrijednost u b = 3.000.


Definicija tipa lijevanja

Lijevanje tipa može se definirati kao, prebacivanje jedne vrste podataka u drugu vrstu podataka, od strane programera, u vrijeme dizajniranja programa. Automatsko pretvaranje jedne vrste podataka u drugu nije moguće stalno. Može biti uvjet da je "odredišna vrsta" manja od "vrste izvora". Stoga programer mora veću vrstu podataka izričito prenijeti na manji tip podataka pomoću operatora lijevanja '()'. Kako se veći tip podataka modulira na manji tip podataka, također se naziva i "sužavanje pretvorbe".

Deklaracija:

target_type = (target_type) varijabla / vrijednost // target type je tip u koji želite pretvoriti izvorni tip, to je uvijek odredišni tip.

Primjer

Shvatimo to sa primjerom. Želite pretvoriti vrstu podataka "int" u "byte". Sada, kako je "bajt" manji od "int", pretvorba tipa nije dopuštena. Ovdje smo morali implicitno pretvoriti "int" u "bajt" pomoću operatora lijevanja "()". Kako je 'int' veći od 'byte', veličina 'int' bit će smanjena na raspon "int mod byte".


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

Kad se 'float' pretvori u 'int', veličina plovka postaje skraćena, jer 'int' ne pohranjuje vrijednost frakcije. Ako je veličina vrste odredišta premala da bi se vrsta izvora mogla uklopiti, tada je izvorni modul odredišni tip "raspon". Emitiranje se također može primijeniti kada su tipovi podataka kompatibilni. Dobra je praksa upotrebljavati lijevanje tipa gdje god je potrebna konverzija tipa.

Definicija pretvorbe tipa

Pretvorba tipa je automatska pretvorba jedne vrste podataka u drugu kad god to zahtijeva eksplicitno. Ali prije pretvorbe tipa moraju biti zadovoljena dva uvjeta.

  • Izvorni i odredišni tip moraju biti kompatibilni.
  • Vrsta odredišta mora biti veća od vrste izvora.

Ova dva uvjeta trebaju zadovoljiti postizanje pretvorbe tipa, a ova vrsta pretvorbe naziva se "proširivanje pretvorbe", jer se manji tip pretvara u veći tip, dolazi do širenja tipa. Za ovu širu pretvorbu, numerički tipovi tipa "int", "float" kompatibilni su jedan s drugim, dok numerički znakovi char i boolean ili char to boolean također nisu kompatibilni.

Primjer

Ovaj će primjer pružiti bolji prikaz ovoga

int a = 3; plutati b; b = a; // vrijednost u b = 3.000.

Ovdje se 'int' pretvara u 'float' koji je veći od 'int', pa dolazi do širenja vrste izvora. Ovdje nije potreban operater lijevanja jer će ih prevoditelj izričito učiniti.

  1. Osnovna razlika koja razlikuje pretvorbu tipova od pretvorbe tipa je tačno lijevanje pretvorbe jedne vrste u drugu, koje provodi programer. S druge strane, pretvorba tipa je pretvorba jedne vrste u drugu, koju izvršava prevoditelj tijekom sastavljanja.
  2. Lijevanje tipova može se primijeniti na vrste podataka, koje možda nisu kompatibilne jedna s drugom. Obrnuto, pretvorba tipa može se primijeniti samo na one tipove podataka koji su međusobno kompatibilni.
  3. Konverzija jedne vrste u drugu u emitiranju tipa zahtijeva operatora lijevanja "()", dok pretvorba jedne vrste podataka u drugu u pretvorbi tipa ne zahtijeva nijednog operatora.
  4. Pri pretvorbi jedne vrste podataka u drugu u emitiranju tipa, odredišna vrsta može biti veća ili manja od vrste izvora. Nasuprot tome, odredišna vrsta mora biti veća od vrste izvora u pretvorbi tipa.
  5. Pretvorba jedne vrste u drugu vrši se kodiranjem u lijevanje tipa. Suprotno tome, kod pretvorbe tipa pretvorba jedne vrste u drugu vrši se izričito tijekom sastavljanja.
  6. Prebacivanje tipa naziva se konverzija sužavanja, jer ovdje odredišna vrsta može biti manja od vrste izvora. Za razliku, pretvorba tipa naziva se proširiva konverzija jer ovdje odredišni tip mora biti veći od izvora.

Zaključak:

Može se zaključiti da pretvorba tipa i cast liječenja tipa oba izvršavaju zadatak pretvaranja jedne vrste podataka u drugu, ali se razlikuju u smislu da lijevanje tipa obavlja programer, koristeći operator operator () ', a pretvorbu tipa vrši prevoditelj , i ne koristi nijedan operator.