[Powered by Google Translate] JORDAN Jozwiak: Druh odliatok, v najjednoduchšom zmysle, je spôsob, ako zmeniť v počítači výklad niektorých údajov implicitne alebo explicitne zmeniť jeho dátový typ. Ako je napríklad zmena typu int na float, alebo naopak. Aby sme pochopili pretypovanie, musíme začať sa základy - dátové typy samotných. V počítačových jazykoch, ako je C, všetky premenné majú nejakú dátového typu, ktorý určuje, ako počítač, a rovnako tak užívateľ, interpretuje túto premennú. Numerické dátové typy ako int, long long, float a double, všetky majú svoje vlastné jedinečné vlastnosti a sú používa na určenie hodnoty rôznych rozsahov a precíznosť. Pretypovanie nám umožní prijať s pohyblivou desatinnou čiarkou čísla ako 3,14 a tú úlohu pred desatinnou čiarkou, 3 v tomto prípade, tým, že obsadí to na int. Zoberme si príklad z anglického jazyka pre krátke preskúmanie typov, a vidieť, ako pretypovanie môže zmeniť spôsob, akým interpretovať kus dát. Pri údajoch, poďme sa symboly tu. Len som sa odvolávajú na tieto starostlivo nastavených zásad ako symboly, ale ako niekto, kto pozná anglický jazyk, môžete okamžite rozpoznať, že sú v skutočnosti, listy. Môžete implicitne chápaný typ dát. Pri pohľade na tohto reťazca písmen môžeme vidieť dve rôzne slová, každý s vlastným zmysle. Tam je podstatné meno, vietor, rovnako ako v fúka vietor mimo. A je tu sloveso, vietor, rovnako ako v musím vietor analógovú hodinky. To je zaujímavý príklad, pretože vidíme, ako typ, ktorý sme priradili do našich dát, či už meno alebo slovesné, zmena spôsobu užívame, že údaje - ako slovo vietor alebo vietor. Hoci počítač nestará o gramatike a diely anglickej reči, rovnaké základné zásada platí. To znamená, že môžeme zmeniť výklad presný rovnaké dáta uložené v pamäti jednoducho odlievanie do iný typ. Tu sú veľkosti najbežnejších typov na 32-bit operačný systém. Máme char na 1 byte, int a float na 4 bajty, dlhé dlhé a double na 8 bajtov. Vzhľadom k tomu, int zaberá 4 bajty, bude trvať až 32 bitov keď sa uloží do pamäte ako binárny série núl a jedničiek. Tak dlho, ako našej premenné zostáva ako typ int, na Počítač bude vždy previesť tie jednotky a nuly z Binárne do pôvodného počtu. Avšak, mohli by sme teoreticky obsadenie tých 32 bitov do radu logických typov. A potom počítač by už vidieť číslo, ale miesto kolekcie núl a jedničiek. Mohli by sme sa tiež pokúsiť čítať, že údaje ako iný číselný písať, alebo dokonca ako reťazec štyroch znakov. Pri práci s číslami v liatie, musíte zvážiť, ako presnosť vášho hodnoty budú ovplyvnené. Majte na pamäti, že presnosť môže zostať rovnaký, alebo môžete stratiť presnosť, ale nikdy nemôžete získať presnosť. Poďme prejsť za tri najbežnejšie spôsoby, ktoré môžete stratiť presnosť. Odlievanie float na int spôsobí skrátenie všetkého za desatinnou čiarkou, takže ste odišiel s celkového počtu. Ak vezmeme float x, ktorý bude rovnať 3,7, môžeme obsadenie táto premenná x typu int jednoducho písať int v zátvorky. Kedykoľvek sme sa použiť tento termín priamo tu, zídeme sa účinne používať hodnotu tri, pretože sme skrátený všetko za desatinnou čiarkou. Môžeme tiež previesť long long na int, ktorá bude podobne viesť k strate vyššieho rádu bitov. Dlho, dlho trvá až 8 bajtov, alebo 64 bitov v pamäti. Takže keď sme sa přetypovat na int, ktorý má len 4 byty, alebo 32 bity, sme v podstate uřízneš všetky bity, ktoré predstavujú vyššiu binárne hodnoty. Dalo by sa tiež obsadený double na float, ktorý vám poskytne si najbližšie možné plavák do výšky dvojnásobku bez nutne zaokrúhlenia to. Podobne ako naše long long int konverzie, strata presnosť je preto dvojaký obsahuje viac dát. Double vám umožní uložiť 53 významných bitov, približne 16 platných číslic. Vzhľadom k tomu, plavák iba vám umožní ukladať 24 bity, zhruba sedem platných číslic. V týchto posledných dvoch prípadoch môže byť užitočné myslieť na pretypovanie ako zmenu veľkosti fotografií. Keď idete z veľkej veľkosti na malé veľkosti, nemôžete vidieť veci tak jasne, pretože ste stratili dát vo forme obrazových bodov. Pretypovanie môže tiež spôsobiť problémy, keď sme obsadenie ints na plaváky. Vzhľadom k tomu, pláva na 32-bit stroje iba 24 bity, nemôžu presne reprezentujú hodnoty nad 2 k sile 24, alebo 16777217. Teraz poďme hovoriť o explicitné a implicitné liatie. Explicitné obsadenie je, keď napíšeme typ v zátvorke pred názov premennej. Ako príklad, ako sme napísali int v zátvorkách pred naším float premennej x. Týmto spôsobom, dostaneme int hodnotu, oklieštenej 3,7 - 3. Implicitná obsadenie je, keď kompilátor automaticky zmení podobné typy na super typ, alebo vykonáva nejaký iný druh odlievanie bez nutnosti, aby užívateľ zapísať žiadne ďalšie kód. Napríklad, keď pridáme 5 a 1,1, naše hodnoty už Typy sú s nimi spojené. Na 5 je int, zatiaľ čo 1.1 je float. Aby bolo možné pridať, počítač vrhá 5 do plaváka, ktoré by boli rovnaké ako písanie 5,0 v prvé miesto. Ale takto povedať, float 5, alebo 5,0, plus to, čo bolo už plavák, 1,1, a odtiaľ môžeme skutočne pridať tieto hodnoty a získať hodnotu 6,1. Implicitná obsadenie nám tiež umožňuje priradiť premenné rôzne druhy navzájom. Môžeme vždy priradiť menej presný typ do viac presné jedna. Napríklad, ak my máme double x, a int y - a mohli by mať všetky hodnoty, ktoré sme si stanovili im - môžeme povedať, x sa rovná y. Vzhľadom k tomu, double má viac presnosť ako typ int, takže sme nestratí žiadne informácie. Na druhej strane, by to nevyhnutne správne povedať y sa rovná x, pretože dvojitý môže mať väčšiu hodnotu než celočíselná. A tak celé číslo nemusí byť schopný držať všetky Informácie uložené v double. Implicitná obsadenie je tiež použitý v relačnej operátormi, ako väčšie ako, menšie ako alebo operátor rovnosti. Týmto spôsobom môžeme povedať, či 5,1 je väčšia ako 5, a dostaneme dôjsť pravda. Vzhľadom k tomu, 5 je int, ale bude to byť přetypovat na float, aby sa byť v porovnaní s plavákom 5,1, by sme povedali, 5,1, je väčší ako 5,0. To isté platí pre ostatné, ak 2,0 rovná rovná 2. Radi by sme tiež získať pravdivé, pretože počítač bude obsadenie integer 2 plávať a potom povedať 2,0 rovná rovná 2,0, je to pravda. Nezabudnite, že môžeme tiež obsadiť medzi ints a pripaľuje, alebo ASCII hodnoty. Znaky tiež potrebné znížiť na binárne, čo je dôvod, prečo môžete ľahko prevádzať medzi znakmi a ich príslušných ASCII hodnoty. Ak sa chcete dozvedieť viac o tom, pozrite sa na naše videá na ASCII. Keď budete mať chvíľku premýšľať o tom, ako je uložený dát, začína robiť veľa zmysel. Je to ako rozdiel medzi vetrom a vietor. Tieto údaje sú rovnaké, ale typ môže meniť ako interpretovať. Moje meno je Jordan Jozwiak, to cs50.