Član : Prijava |Registracija |Znanje Naloži
Iskanje
Konverzijo tipa [Sprememba ]
V računalništvu, pretvorbi tipa, tipu ulivanja in tipski prisili so različni načini spreminjanja enote ene vrste podatkov v drugo. Primer bi bila pretvorba celostne vrednosti v vrednost s plavajočo vejico ali njena besedilna predstavitev kot niz in obratno. Konverzije tipa lahko izkoristijo določene funkcije hierarhij ali tipov podatkov. Dva pomembna vidika pretvorbe tipa je, ali se to zgodi implicitno ali eksplicitno in ali se predstavitev osnovnih podatkov pretvori iz ene predstavitve v drugo, ali pa se določena predstavitev zgolj ponovno razlaga kot predstavitev druge vrste podatkov. Na splošno lahko spremenimo tako primitivne kot tudi sestavljene vrste podatkov.
Vsak programski jezik ima lastna pravila o tem, kako je mogoče pretvoriti vrste. Jeziki z močnim tipkanjem običajno ne izvajajo malo implicitne konverzije in odvračajo od reinterpretacije predstavitev, medtem ko jeziki s šibkim tipkanjem izvajajo veliko implicitnih pretvorb med vrstami podatkov. Slab tipkarski jezik pogosto dopušča, da prevajalnik samovoljno razlaga podatkovno postavko z različnimi predstavitvami - to je lahko očitna programska napaka ali tehnična metoda za neposredno obravnavo osnovne strojne opreme.
V večini jezikov se beseda prisile uporablja za označevanje implicitne konverzije bodisi med zbiranjem ali med izvajanjem. Na primer, v izrazu za mešanje celo število in številko plavajoče točke (npr. 5,1,1), bo prevajalnik samodejno pretvoril celostno predstavitev v predstavitev s plavajočo vejico, tako da se frakcije ne izgubijo. Izrecne konverzije tipa so označene z zapisovanjem dodatne kode (npr. Dodajanje identifikatorjev tipov ali klicanje vgrajenih podprogramov) ali s kodiranjem pretvorbenih rutin za prevajalnik, ki ga bo uporabil, če bi drugače zaustavil z neusklajenostjo tipa.
V večini ALGOL podobnih jezikov, kot so Pascal, Modula-2, Ada (programski jezik) in Delphi, pretvorba in litje so izrazito drugačni koncepti. V teh jezikih se pretvorba nanaša na implicitno ali eksplicitno spreminjanje vrednosti iz ene vrste shranjevanja podatkovnega tipa v drugo, npr. 16-bitno celo število v 32-bitno celo število. Potrebe po skladiščenju se lahko spremenijo zaradi pretvorbe, vključno z morebitno izgubo natančnosti ali zmanjšanjem. Beseda, ki jo oddaja, pa se nanaša na izrecno spremembo interpretacije bitnega vzorca, ki predstavlja vrednost iz ene vrste v drugo. Na primer, 32 sosednjih bitov se lahko obravnava kot matrika 32 booleov, 4-bajtni niz, nepodpisano 32-bitno celo število ali IEEE enočasna natančna vrednost s plavajočo vejico. Ker se shranjeni bitovi nikoli ne spremenijo, mora programer znati podrobnosti o nizki ravni, kot so predstavitveni format, vrstni red bajtov in potrebe poravnave, da se smiselno oddajo.
V družini jezikov C in ALGOL 68 se beseda oddaja ponavadi nanaša na eksplicitno konverzijo tipa (v nasprotju z implicitno konverzijo), kar povzroča nekaj dvoumnosti glede tega, ali je to ponovna interpretacija bitnega vzorca ali resnične predstavitve podatkov pretvorba. Pomembnejše je več načinov in pravil, ki se nanašajo na vrsto podatkov (ali razred), ki jih nahaja kazalec, in kako lahko prevajalnik prilagodi kazalec v primerih, kot je dedovanje predmeta (razreda).
[Računalništvo][Aritmetika s plavajočo vejico][Programski jezik][Prevajalnik][Ada: programski jezik][Delphi: programski jezik]
1.Primerjava jezikov
1.1.C-like languages
1.1.1.Implicitna pretvorba tipa
1.1.1.1.Promocija tipa
1.1.2.Izrecna pretvorba tipa
1.2.C # in C
1.3.Eiffel
1.3.1.Opredelitev pretvorbe tipa v Eiffelu
1.3.2.Primer
2.Varnostna vprašanja
[Naloži Več Vsebina ]


Avtorske pravice @2018 Lxjkh