[Powered by Google Translate] JORDAN Jozwiak: Druh odlitek, v nejjednodušším smyslu, je
způsob, jak změnit v počítači výklad některých údajů
implicitně nebo explicitně změnit jeho datový typ.
Jako je například změna typu int na float, nebo naopak.
Chcete-li pochopit, přetypování, musíme
začít se základy -
datové typy samotných.
V počítačových jazycích, jako je C, všechny proměnné mají nějakou
datového typu, který určuje, jak počítač, a stejně tak
uživatel, interpretuje tuto proměnnou.
Numerické datové typy jako int, long long, float a
double, všechny mají své vlastní jedinečné vlastnosti a jsou
používá k určení hodnoty různých rozsahů a preciznost.
Přetypování nám umožní přijmout s pohyblivou desetinnou čárkou čísla jako
3.14 a tu roli před desetinné, 3 v tomto případě,
tím, že obsadí to na int.
Vezměme si příklad z anglického jazyka pro krátké
přezkoumání typů, a vidět, jak přetypování může změnit
způsob, jakým interpretovat kus dat.
U údajů, pojďme se symboly zde.
Jen jsem se odkazují na tyto pečlivě nastavených zásad jako
symboly, ale jako někdo, kdo zná anglický jazyk,
můžete okamžitě rozpoznat, že jsou ve skutečnosti, dopisy.
Můžete implicitně chápán typ dat.
Při pohledu na tohoto řetězce písmen můžeme vidět dvě
různá slova, každý s vlastním smyslu.
Tam je podstatné jméno, vítr, stejně jako v fouká vítr mimo.
A je tu sloveso, vítr, stejně jako v musím
vítr analogovou hodinky.
To je zajímavý příklad, protože vidíme,
jak typ, který jsme přiřadili našich údajů, ať už jméno nebo
slovesné, změna způsobu užíváme, že údaje -
jako slovo vítr nebo vítr.
Přestože počítač nestará o gramatice a díly
anglické řeči, stejné základní zásada platí.
To znamená, že můžeme změnit výklad přesné
stejná data uložená v paměti jednoduše odlévání do
jiný typ.
Zde jsou velikosti nejběžnějších typů na 32-bit
operační systém.
Máme char na 1 byte, int a float na 4 bajty, dlouhé
dlouhé a double na 8 bajtů.
Vzhledem k tomu, int zabírá 4 bajty, bude trvat až 32 bitů
když se uloží do paměti jako binární série
nul a jedniček.
Tak dlouho, jak naší proměnné zůstává jako typ int, na
Počítač bude vždy převést ty jedničky a nuly z
Binární do původního počtu.
Nicméně, mohli bychom teoreticky obsazení těch 32
bitů do řady logických typů.
A pak počítač by již vidět číslo, ale
místo kolekce nul a jedniček.
Mohli bychom se také pokusit číst, že údaje jako jiný číselný
psát, nebo dokonce jako řetězec čtyř znaků.
Při práci s čísly v lití, musíte zvážit, jak
přesnost vašeho hodnoty budou ovlivněny.
Mějte na paměti, že přesnost může zůstat stejný,
nebo můžete ztratit přesnost, ale nikdy nemůžete získat přesnost.
Pojďme projít za tři nejběžnější způsoby, které můžete
ztratit přesnost.
Odlévání float na int způsobí zkrácení všeho
za desetinnou čárkou, takže jste odešel
s celkového počtu.
Vezmeme-li float x, který bude rovnat 3,7, můžeme obsazení
tato proměnná x typu int jednoduše psát int v
závorky.
Kdykoli jsme se použít tento termín přímo tady, sejdeme se účinně
používat hodnotu tři, protože jsme zkrácen
vše, co po desetinné čárce.
Můžeme také převést long long na int, která bude
podobně vést ke ztrátě vyššího řádu bitů.
Dlouho, dlouho trvá až 8 bajtů, nebo 64 bitů v paměti.
Takže když jsme se přetypovat na int, který má pouze 4 byty, nebo 32
bity, jsme v podstatě uřízneš všechny bity, které
představují vyšší binární hodnoty.
Dalo by se také obsazen double na float, který vám poskytne
si nejbližší možné plovák do výše dvojnásobku bez
nutně zaokrouhlení to.
Podobně jako naše long long int obrácení, ztráta
přesnost je proto dvojí obsahuje více dat.
Double vám umožní uložit 53 významných bitů,
zhruba 16 platných číslic.
Vzhledem k tomu, plovák pouze vám umožní ukládat 24
bity, zhruba sedm platných číslic.
V těchto posledních dvou případech může být užitečné myslet na
přetypování jako změnu velikosti fotografií.
Když jdete z velké velikosti na malé velikosti, nemůžete vidět
věci tak jasně, protože jste ztratili dat
ve formě obrazových bodů.
Přetypování může také způsobit potíže, když jsme
obsazení ints na plováky.
Vzhledem k tomu, plave na 32-bit stroje pouze 24
bity, nemohou přesně reprezentují hodnoty
nad 2 k síle 24, nebo 16777217.
Nyní pojďme hovořit o explicitní a implicitní lití.
Explicitní obsazení je, když napíšeme typ v závorce
před název proměnné.
Jako příklad, než jsme napsali int v závorkách před naším
float proměnné x.
Tímto způsobem, dostaneme int hodnotu,
okleštěné hodnoty 3,7 -
3.
Implicitní obsazení je, když kompilátor automaticky změní
podobné typy na super typ, nebo vykonává nějaký jiný druh
odlévání bez nutnosti, aby uživatel zapsat
žádné další kód.
Například, když přidáme 5 a 1,1, naše hodnoty již
Typy jsou s nimi spojeny.
5 je int, zatímco 1.1 je float.
Aby bylo možné přidat, počítač vrhá 5 do plováku,
které by byly totéž jako psaní 5,0 v
první místo.
Ale takhle říci, float 5, nebo 5,0, plus to, co bylo již
float, 1,1, a odtud můžeme skutečně přidat tyto
hodnoty a získat hodnotu 6,1.
Implicitní obsazení nám také umožňuje přiřadit proměnné
různé druhy navzájem.
Můžeme vždy přiřadit méně přesný typ do více
přesné jedna.
Například, jestliže my máme double x, a int y -
a mohly by mít všechny hodnoty, které jsme si stanovili jim -
můžeme říci, x se rovná y.
Vzhledem k tomu, double má více přesnost než typ int, takže jsme
neztratí žádné informace.
Na druhé straně, by to nutně správné říci
y se rovná x, protože dvojitý může mít větší hodnotu než
integer.
A tak celé číslo nemusí být schopen držet všechny
Informace uložené v double.
Implicitní obsazení je také použit v relační operátory, jako
větší než, menší než nebo operátor rovnosti.
Tímto způsobem můžeme říct, jestli 5,1 je větší než 5, a dostaneme
dojít pravda.
Vzhledem k tomu, 5 je int, ale bude to být přetypovat na float, aby se
být ve srovnání s plovákem 5,1, bychom řekli, 5,1, je
větší než 5,0.
Totéž platí pro ostatní, pokud 2,0 rovná rovná 2.
Rádi bychom také získat pravda, protože počítač bude obsazení
integer 2 plavat a pak říci 2,0 rovná rovná 2,0,
je to pravda.
Nezapomeňte, že můžeme také obsadit mezi ints a připaluje,
nebo ASCII hodnoty.
Znaky také třeba snížit na binární, což je důvod, proč
můžete snadno převádět mezi znaky a jejich příslušných
ASCII hodnoty.
Chcete-li se dozvědět více o tom, podívejte se na naše videa na ASCII.
Když budete mít chvilku přemýšlet o tom, jak je uložen dat,
to začne dávat hodně smysl.
Je to jako rozdíl mezi větrem a vítr.
Tyto údaje jsou stejné, ale typ může měnit jak
interpretovat.
Mé jméno je Jordan Jozwiak, to cs50.