Atšķirība starp tipa liešanu un tipa konvertēšanu

Autors: Laura McKinney
Radīšanas Datums: 1 Aprīlis 2021
Atjaunināšanas Datums: 4 Maijs 2024
Anonim
Type Casting vs Type Conversion|Difference between Type Casting and Type Conversion
Video: Type Casting vs Type Conversion|Difference between Type Casting and Type Conversion

Saturs


Pamata atšķirība starp tipa konvertēšanu un veida liešanu, t.i., tipa konvertēšanu “automātiski” veic kompilators, turpretim tipa liešana “skaidri jāveic” programmētājam.

Divi termini “tipa liešana” un “tipa konvertēšana” rodas, ja ir nepieciešams pārveidot vienu datu tipu citā. Ja abi tipi ir savstarpēji savietojami, kompilators automātiski konvertē vienu tipu uz citu. Apskatīsim atšķirības gan veidu liešanā, gan konvertācijā, izmantojot salīdzināšanas tabulu.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula:

Salīdzināšanas pamatsVeids CastingTipa konvertēšana
NozīmeVienu datu tipu lietotājs piešķir citam lietotājam, izmantojot apraides operatoru, tad to sauc par “Type Casting”.Kompilators automātiski konvertē viena datu tipu uz citu, to sauc par “Type Conversion”.
LietotsVeidu pārsūtīšanu var piemērot arī diviem nesaderīgiem datu tipiem.Tipa konvertēšanu var veikt tikai tad, ja ir saderīgi divi datu tipi.
OperatorsDatu veida apraidei citam ir nepieciešams apraides operators ().Operators nav nepieciešams.
Datu veidu lielumsGalamērķa tips var būt mazāks nekā avota tips.Šeit mērķa veidam jābūt lielākam par avota tipu.
ĪstenotsTas tiek darīts programmas izstrādes laikā.Tas tiek darīts tieši sastādīšanas laikā.
Konversijas tips

Sašaurināšanās konversija.Paplašinot pārveidošanu.
Piemērsint a;
bits;
...
...
b = (baits) a;
int a = 3;
pludiņš b;
b = a; // vērtība b = 3 000.


Tipa liešanas definīcija

Veids liešana to var definēt kā viena datu tipa nomaiņu citam datu tipam, ko programmētājs izstrādā programmas laikā. Automātiska viena datu veida pārveidošana citā nav visu laiku iespējama. Var būt nosacījums, ka “galamērķa tips” ir mazāks nekā “avota tips”. Tāpēc programmētājam, izmantojot liešanas operatoru '()', skaidri jānorāda lielāks datu tips uz mazāku datu tipu. Tā kā lielāks datu tips tiek modulēts ar mazāku datu tipu, to sauc arī par “sašaurinošu reklāmguvumu”.

Deklarācija:

Destination_type = (target_type) mainīgais / vērtība // mērķa tips ir tips, kurā vēlaties konvertēt avota veidu, tas vienmēr ir mērķa tips.

Piemērs

Sapratīsim to ar piemēru. Jūs vēlaties pārveidot datu tipu “int” par “baitu”. Tagad, tā kā “baits” ir mazāks nekā “int”, veida konvertēšana nav atļauta. Šeit mums netieši bija jāpārvērš “int” par “baitu”, izmantojot liešanas operatoru “()”. Tā kā “int” ir lielāks nekā “baits”, “int” lielums tiks samazināts līdz “int mod baits”.


int a; bits; ... ... b = (baits) a;

Kad “pludiņš” tiek pārveidots par “int”, pludiņa lielums tiek saīsināts, jo “int” nesaglabā frakcionēto vērtību. Ja mērķa tipa lielums ir pārāk mazs, lai avota tips ietilptu, tad avota tips ir modulo galamērķa tips “diapazons”. Apraidi var izmantot arī tad, ja datu veidi ir saderīgi. Ir laba prakse izmantot veida liešanu visur, kur nepieciešama tipa konvertēšana.

Tipa konvertēšanas definīcija

Tipa konvertēšana ir automātiska viena datu veida pārvēršana citā, kad vien tas ir nepieciešams, un to tieši veic kompilators. Bet pirms tipa pārveidošanas ir jāizpilda divi nosacījumi.

  • Avota un mērķa tipam jābūt saderīgam.
  • Galamērķa tipam jābūt lielākam par avota tipu.

Šiem diviem nosacījumiem ir jābūt izpildītiem, lai panāktu tipa pārvēršanu, un šāda veida pārvēršanu sauc par “paplašinošu reklāmguvumu”, jo mazāks tips tiek pārveidots par lielāku tipu, un notiek tipa paplašināšanās. Šim paplašinātajam konvertēšanai skaitļu tipi, piemēram, “int”, “float”, ir savstarpēji savietojami, savukārt ciparu - char un boolean vai char - boolean veidi arī nav savietojami.

Piemērs

Šis piemērs sniegs labāku priekšstatu par to

int a = 3; pludiņš b; b = a; // vērtība b = 3 000.

Šeit “int” tiek pārveidots par “float”, kas ir lielāks nekā “int”, tāpēc notiek avota veida paplašināšanās. Šeit liešanas operators nav nepieciešams, jo kompilators to darīs tieši.

  1. Pamata atšķirība, kas atšķir tipa liešanu no tipa pārveidošanas, ir tāda, ka veida liešana ir viena veida pārveidošana citā, ko veic programmētājs. No otras puses, tipa konvertēšana ir viena veida konvertēšana uz citu, ko kompilators veic kompilēšanas laikā.
  2. Datu veidiem var piemērot apraidi, kas var nebūt savietojami viens ar otru. Turpretī tipa konvertēšanu var piemērot tikai tiem datu tipiem, kas ir savstarpēji savietojami.
  3. Viena veida pārveidošanai citā veida liešanā ir nepieciešams liešanas operators “()”, savukārt viena datu veida konvertēšanai citā veida pārveidē nav nepieciešams neviens operators.
  4. Pārveidojot vienu datu tipu citā veida apraidē, mērķa tips var būt lielāks vai mazāks nekā avota tips. Pretstatā mērķa tipam jābūt lielākam par avota tipu tipa pārveidē.
  5. Viena tipa konvertēšana uz citu tipu tiek veikta, kodējot veidu liešanā. Turpretī tipa pārveidošanā viena veida pārvēršana citā tiek veikta tieši kompilācijas laikā.
  6. Tipa liešana tiek saukta par sašaurinošu konvertēšanu, jo šeit mērķa tips var būt mazāks nekā avota tips. Atšķirībā no tipa konvertēšanu sauc par paplašinošu reklāmguvumu, jo šeit mērķa veidam jābūt lielākam par avota tipu.

Secinājums:

Var secināt, ka gan tipa konvertēšana, gan tipa liešana veic uzdevumu pārveidot vienu datu tipu citā, taču atšķiras tādā nozīmē, ka tipa konvertēšanu veic programmētājs, izmantojot cast operator () un tipa konvertēšanu veic kompilators. , un tas neizmanto nevienu operatoru.