Diferența dintre tipul de turnare și conversia de tip

Autor: Laura McKinney
Data Creației: 1 Aprilie 2021
Data Actualizării: 4 Mai 2024
Anonim
Diferenta dintre BCA si BCU
Video: Diferenta dintre BCA si BCU

Conţinut


Diferența de bază între conversia tipului și turnarea de tip, adică conversia de tip se face „automat” de către compilator, în timp ce programarea de tip trebuie să fie realizată în mod explicit de programator.

Cei doi termeni „turnare tip” și „conversie tip” apar atunci când este necesară conversia unui tip de date în altul. Atunci când cele două tipuri sunt compatibile între ele, atunci conversia unui tip în altul se face automat de către compilator. Să discutăm diferența atât de turnare de tip, cât și de conversie, cu ajutorul graficului de comparație.

  1. Diagramă de comparație
  2. Definiție
  3. Diferențele cheie
  4. Concluzie

Diagramă de comparație:

Baza pentru comparațieTip TurnareTip conversie
SensUnul tip de date este atribuit altuia de către utilizator, folosind un operator de distribuție, apoi este numit "Turnare tip".Conversia unui tip de date în altul automat de către compilator se numește „Conversie tip”.
AplicatTurnarea tipului poate fi de asemenea aplicată la două tipuri de date incompatibile.Conversia tipului poate fi implementată numai atunci când două tipuri de date sunt compatibile.
OperatorPentru turnarea unui tip de date la altul, este necesar un operator de turnare ().Nu este nevoie de operator.
Dimensiunea tipurilor de dateTipul de destinație poate fi mai mic decât tipul sursă.Aici, tipul de destinație trebuie să fie mai mare decât tipul sursă.
Pus în aplicareSe realizează în timpul proiectării programului.Se face explicit în timp ce se compilează.
Tip de conversie

Conversie îngustă.Conversie extinsă
Exempluint a;
octet b;
...
...
b = (octet) a;
int a = 3;
plutesc b;
b = a; // valoarea în b = 3.000.


Definiția Type Casting

Tip turnare poate fi definită ca, distribuirea unui tip de date la un alt tip de date, de către programator, la momentul proiectării programului. Conversia automată a unui tip de date în altul nu este posibilă tot timpul. Poate fi condiția ca „tipul de destinație” să fie mai mic decât „tipul sursă”. Prin urmare, programatorul trebuie să arunce în mod explicit tipul de date mai mare la tipul de date mai mici, utilizând operatorul de casting „()”. Deoarece tipul de date mai mare este modulat la tipul de date mai mic, acesta este denumit și „reducerea conversiei”.

Declaraţie:

destination_type = (target_type) variabilă / valoare // tipul țintă este un tip în care doriți să convertiți tipul sursă, acesta este întotdeauna tipul de destinație.

Exemplu

Să o înțelegem cu un exemplu. Doriți să convertiți tipul de date „int” în „octet”. Acum, deoarece „byte” este mai mic decât „int”, conversia de tip nu este permisă. Aici, a trebuit să transformăm implicit „int” în „octet” folosind operatorul de casting „()”. Deoarece „int” este mai mare decât „octet”, dimensiunea „int” va fi redusă la intervalul „int mod byte”.


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

Când „float” este convertit în „int”, dimensiunea float-ului este trunchiată, întrucât „int” nu stochează valoarea fracțională. Dacă dimensiunea tipului de destinație este prea mică pentru ca tipul sursă să se încadreze, atunci tipul sursă este tipul de destinație modulo „interval”. Turnarea poate fi de asemenea aplicată atunci când tipurile de date sunt compatibile. Este o practică bună să folosiți turnarea tipului oriunde este nevoie de conversia tipului.

Definiția tip Conversion

Conversie de tip este conversia automată a unui tip de date în altul ori de câte ori este necesar, efectuat explicit de compilator. Dar există două condiții care trebuie îndeplinite înainte de conversia de tip.

  • Sursa și tipul de destinație trebuie să fie compatibile.
  • Tipul de destinație trebuie să fie mai mare decât tipul sursă.

Aceste două condiții ar trebui să satisfacă pentru a obține conversia de tip, iar acest tip de conversie este denumit „conversie de lărgire”, deoarece un tip mai mic este convertit în tip mai mare, are loc lărgirea tipului. Pentru această conversie de lărgire, tipurile numerice ca „int”, „float” sunt compatibile între ele, în timp ce numeric pentru char și boolean sau char pentru boolean nu este de asemenea compatibil.

Exemplu

Acest exemplu va oferi o vedere mai bună a acestui aspect

int a = 3; plutesc b; b = a; // valoarea în b = 3.000.

Aici, „int” este convertit în „float” care este mai mare decât „int”, astfel încât se produce lărgirea tipului sursă. Aici, nu este necesar niciun operator de turnare, deoarece compilatorul o va face în mod explicit.

  1. Diferența de bază care distinge turnarea tipului de conversia tipului este aceea că turnarea de tip este conversia unui tip în altul, efectuată de programator. Pe de altă parte, conversia de tip este conversia unui tip în altul, efectuată de compilator în timpul compilării.
  2. Turnarea tipului poate fi aplicată tipurilor de date, care nu pot fi compatibile între ele. În schimb, conversia de tip poate fi aplicată numai tipurilor de date compatibile între ele.
  3. Conversia de la un tip la altul la o turnare de tip necesită turnarea „()” în timp ce conversia unui tip de date în altul în conversia tipului nu necesită niciun operator.
  4. În timp ce convertim un tip de date în altul în tipul de turnare, tipul destinație poate fi mai mare sau mai mic decât tipul sursă. Spre deosebire, tipul de destinație trebuie să fie mai mare decât tipul sursă în conversia tipului.
  5. Conversia unui tip în alt tip se face în timp ce se codează în turnarea tipului. În schimb, în ​​conversia de tip, conversia unui tip în altul se face explicit în timpul compilării.
  6. Turnarea tipului se numește conversie îngustare deoarece aici destinația poate fi mai mică decât tipul sursă. Spre deosebire, conversia de tip se numește lărgire conversie, deoarece aici, tipul de destinație trebuie să fie mai mare decât tipul sursă.

Concluzie:

Se poate concluziona că conversia de tip și turnarea de tip, ambele îndeplinesc sarcina de a converti un tip de date în altul, dar diferă în sensul că turnarea de tip este realizată de programator, folosind operator operator () și conversia de tip este realizată de compilator și nu folosește niciun operator.