Ero tyyppivalun ja tyyppimuunnoksen välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 5 Saattaa 2024
Anonim
Ero tyyppivalun ja tyyppimuunnoksen välillä - Tekniikka
Ero tyyppivalun ja tyyppimuunnoksen välillä - Tekniikka

Sisältö


Perusero tyyppimuunnoksen ja tyyppivalun välillä, ts. Tyyppimuuntaminen tehdään kääntäjällä ”automaattisesti”, kun taas ohjelmoija tekee tyyppivalun ”nimenomaisesti”.

Kaksi termiä "tyypin valu" ja "tyypin muuntaminen" tapahtuvat, kun on tarpeen muuntaa yksi tietotyyppi toiseksi. Kun nämä kaksi tyyppiä ovat yhteensopivia keskenään, kääntäjä muuntaa yhden tyypin toiseksi. Keskustelemme sekä tyyppivalun että muunnoksen eroista vertailutaulun avulla.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko:

Vertailun perusteetTyyppi CastingTyypin muuntaminen
merkitysKäyttäjä on määrittänyt yhden tietotyypin toiselle käyttäjälähetysoperaattorin avulla, ja sitä kutsutaan "Type Casting".Yhden tietotyypin muuntaminen kääntäjäksi automaattisesti nimeltään "Tyyppimuuntaminen".
soveltavaTyyppivalintaa voidaan soveltaa myös kahteen yhteensopimattomaan tietotyyppiin.Tyyppimuutos voidaan toteuttaa vain, kun kaksi tietotyyppiä ovat yhteensopivia.
operaattoriTietotyypin lähettämiseksi toiselle vaaditaan valuuttaoperaattori ().Operaattoria ei tarvita.
Tietotyyppien kokoKohdetyyppi voi olla pienempi kuin lähdetyyppi.Kohdetyypin on tällöin oltava suurempi kuin lähdetyyppi.
täytäntöönSe tehdään ohjelman suunnittelun aikana.Se tehdään nimenomaisesti käännettäessä.
Muunnostyyppi

Kapeneva muuntaminen.Laajentuva muuntaminen.
esimerkkiint a;
tavu b;
...
...
b = (tavu) a;
int a = 3;
kellua b;
b = a; // arvo b: ssä = 3 000.


Määritelmä Tyyppi Casting

Tyyppi casting voidaan määritellä nimellä, että ohjelmoija valaisee tietotyypin toiselle tietotyypille ohjelman suunnittelun aikana. Tietotyypin automaattinen muuntaminen toiseen ei ole mahdollista jatkuvasti. Voi olla ehto, että kohdetyyppi on pienempi kuin lähdetyyppi. Siksi ohjelmoijan on siirrettävä suurempi tietotyyppi nimenomaisesti pienemmälle tietotyypille casting-operaattorin '()' avulla. Koska suurempi tietotyyppi moduloidaan pienemmäksi tietotyypiksi, sitä kutsutaan myös 'kaventavaksi muunnokseksi'.

ilmoitus:

kohde_tyyppi = (kohde_ tyyppi) muuttuja / arvo // kohdetyyppi on tyyppi, jonka haluat muuntaa lähdetyypin, se on aina kohdetyyppi.

esimerkki

Ymmärretään se esimerkillä. Haluat muuntaa tietotyypin 'int' tavuksi. Nyt, koska 'tavu' on pienempi kuin 'int', tyypin muuntaminen ei ole sallittua. Täällä meidän piti implisiittisesti muuntaa 'int' 'tavuksi' käyttämällä lähetysoperaattoria '()'. Koska 'int' on suurempi kuin 'tavu', 'int' koko pienenee 'int mod tavu' -alueeksi.


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

Kun ”kellua” muunnetaan “int”, kelluu koko lyhenee, koska ”int” ei tallenna murto-arvoa. Jos kohdetyypin koko on liian pieni lähdetyypin sovittamiseksi, lähdetyyppi on modulo määränpäätyyppi 'alue'. Suoratoistoa voidaan käyttää myös, kun tietotyypit ovat yhteensopivia. On hyvä käytäntö käyttää tyyppivalua missä tahansa tyypin muuntamista tarvitaan.

Määritelmä Tyypin muuntaminen

Tyyppimuutos on kääntäjän nimenomaisesti suorittama tietotyypin automaattinen muuntaminen toiseen tarvittaessa. Mutta ennen tyyppimuuntamista on täytettävä kaksi ehtoa.

  • Lähteen ja määränpään tyypin on oltava yhteensopivia.
  • Kohdetyypin on oltava suurempi kuin lähdetyyppi.

Näiden kahden ehdon tulee täyttyä tyyppimuunnoksen saavuttamiseksi, ja tällaista muunnosta kutsutaan ”laajenevaksi muunnokseksi”, koska pienempi tyyppi muutetaan suuremmiksi, ja tyypin laajentuminen tapahtuu. Tätä laajempaa muuntamista varten numeeriset tyypit, kuten 'int', 'kelluvat', ovat yhteensopivia keskenään, vaikka numeerinen merkiksi char ja boolean tai char to boolean eivät myöskään ole yhteensopivia.

esimerkki

Tämä esimerkki antaa paremman kuvan tästä

int a = 3; kellua b; b = a; // arvo b: ssä = 3 000.

Täällä 'int' muunnetaan 'kelluvaksi', joka on suurempi kuin 'int', joten lähdetyyppi laajenee. Tässä ei vaadita casting-operaattoria, koska kääntäjä tekee sen nimenomaisesti.

  1. Perusero, joka erottaa tyyppivalun tyyppimuuntamisesta, on, että tyyppivalu on ohjelmoijan suorittama tyypin muuntaminen toiseksi. Toisaalta tyyppimuutos on muuntaja yhden tyypin toiseksi, jonka kääntäjä tekee kääntämisen aikana.
  2. Tyyppivalua voidaan soveltaa tietotyyppeihin, jotka eivät välttämättä ole yhteensopivia keskenään. Toisaalta tyyppimuunnosta voidaan soveltaa vain toisiinsa yhteensopiviin tietotyyppeihin.
  3. Yhden tyypin muuntaminen toiseksi tyyppivalussa edellyttää valu operaattoria “()”, kun taas tietotyypin muuntaminen toiseksi tyyppimuunnossa ei vaadi operaattoria.
  4. Kun muunnetaan yksi tietotyyppi toiseksi tyyppivaluissa, kohdetyyppi voi olla suurempi tai pienempi kuin lähdetyyppi. Toisin kuin kohdetyypin on oltava suurempi kuin lähdetyyppi tyyppimuunnossa.
  5. Yhden tyypin muuntaminen toiseksi tyypiksi tapahtuu koodaamalla tyyppivalussa. Sitä vastoin tyyppimuunnossa yhden tyypin muuntaminen toiseksi tapahtuu nimenomaisesti kokoamisen aikana.
  6. Tyyppivalua kutsutaan kaventavaksi muuntamiseksi, koska tässä kohdetyyppi voi olla pienempi kuin lähdetyyppi. Toisin kuin tyyppimuunnosta kutsutaan laajenevaksi muuntamiseksi, koska tässä kohdetyypin on oltava suurempi kuin lähdetyyppi.

johtopäätös:

Voidaan päätellä, että tyyppimuuntaminen ja tyyppivalu suorittavat molemmat tietotyypin muuntamisesta toiseen, mutta eroavat toisistaan ​​siinä mielessä, että tyyppivalun suorittaa ohjelmoija käyttämällä cast operaattoria () 'ja tyyppimuuntamista suorittaa kääntäjä , ja se ei käytä mitään operaattoria.