[Powered by Google Translate] JORDAN JOZWIAK: Veids liešanas, kas vienkāršākā nozīmē, ir
veids, mainīt datora interpretāciju dažu datu
tieši vai netieši mainīt savu datu tipu.
Piemēram, mainot int ar pludiņa, vai otrādi.
Lai saprastu tipa liešana, mums ir nepieciešams
sākt ar pamatiem -
datu tipi paši.
Datoru valodas, piemēram, C, visi mainīgie ir kaut kādas
Datu tips, kas nosaka, kā dators, un tāpat
lietotājs, interpretēs mainīgo.
Skaitliskie datu tipi, piemēram, int, ilgi ilgi, pludiņu un
dubultā, visi ir savas unikālas īpašības, un ir
izmantots, lai norādītu vērtības dažādu diapazonu un precizitāti.
Tipa liešana ļauj mums veikt peldošā punkta numuru, piemēram
3,14 un saņemt daļu pirms decimālā, 3 šajā gadījumā,
, lejot to uz int.
Paņemsim piemēru no angļu valodas uz īsu
pārskatīt veidu, un redzēt, kā veids liešana var mainīties
kā mēs interpretēt gabals datus.
Par datiem, pieņemsim simboliem šeit.
Es tikai atsaukties uz šiem rūpīgi konfigurētas virzienos kā
simboli, bet kā cilvēks, kas zina angļu valodu,
Jūs uzreiz atzīst, ka tās ir, faktiski, vēstules.
Jūs netieši saprot datu tipu.
Aplūkojot šo burtu mēs varam redzēt divus
dažādi vārdi, katrs ar savu nozīmi.
Tur lietvārds, vējš, kā vējš pūš ārā.
Un tur ir vārds, vējš, jo man ir nepieciešams, lai
Noslēdzot savu analogo skatīties.
Tas ir interesants piemērs, jo mēs varam redzēt
kā veids, kas mēs piešķiram mūsu datiem, vai lietvārds vai
vārds, izmaiņas, kā mēs izmantojam šos datus -
jo vārds vēja vai vēja.
Kaut dators nav vienalga par gramatiku un daļu
angļu runas, pats galvenais princips.
Tas ir, mēs varam mainīt interpretāciju precīzu
paši dati atmiņā, vienkārši lejot to
atšķirīga tipa.
Šeit ir visbiežāk veida izmēri uz 32-bitu
operētājsistēmu.
Mums ir CHAR pēc 1 baitu, int un dēli pie 4 baiti, ilgi
garš un pēc 8 baitu dubultā.
Jo int aizņem 4 baitus, tas aizņem 32 bitus
kad tas tiek saglabāts atmiņā kā bināru sēriju
gada nullēm un uzņēmumiem.
Kamēr mūsu mainīgā paliek kā int, ka
Dators vienmēr pārvērst šos tiem un nullītes no
bināro uz sākotnējo numuru.
Tomēr mēs teorētiski varētu nodot tiem 32
biti vērā virkni Būla veidiem.
Un tad dators vairs redzēt vairākas, bet
vietā kolekcija nullēm un uzņēmumiem.
Mēs varētu arī mēģināt lasīt, ka dati par atšķirīgu ciparu
rakstīt, vai pat kā virkne četriem burtiem.
Kad nodarbojas ar numuriem liešana, jums ir jāapsver, kā
par jūsu vērtības precizitāte tiks ietekmētas.
Paturiet prātā, ka precizitāte var palikt tāds pats,
vai jūs varat zaudēt precizitāti, bet jūs nekad nevar iegūt precizitāti.
Iesim cauri visām trim visbiežāk veidus, ka jūs varat
zaudē precizitāti.
Liešana, apgrozāmos līdzekļus, lai int radīs truncation viss
aiz komata, lai jūs esat atstājuši
ar visu numuru.
Ja mēs ņemtu float x kas būs vienāda 3,7, mēs varam nodot
Šis rādītājs ir int x, vienkārši rakstot int jo
iekavas.
Ikreiz, kad mēs izmantojam šo terminu tieši šeit, mēs faktiski
, izmantojot vērtību 3, jo mēs esam saīsināts
viss aiz komata.
Mēs varam arī pārvērst ilgi ilgi int, kas būs
Tāpat novest pie zaudējuma augstas kārtas biti.
Ilgi ilgi aizņem 8 baiti, vai 64 bitiem atmiņā.
Tātad, kad mēs nodot to uz int kuram ir tikai 4 baitus, 32 vai
biti, mēs būtībā kapāšanas pie visām biti,
pārstāv augstākās bināro vērtības.
Jūs varētu arī nodot dubultā ar pludiņa, kas dos
Jūs visciešākā iespējamā pludiņš ar dubultās bez
obligāti noapaļošana tā.
Līdzīgi kā mūsu ilgi ilgi int pārveidi, zaudējumu
precizitāte ir tāpēc dubultā satur vairāk datu.
Dubultā ļaus jums uzglabāt 53 nozīmīgus biti,
aptuveni 16 zīmīgajiem cipariem.
Tā pludiņš būs tikai ļauj jums saglabāt 24
ievērojamas biti, aptuveni 7 zīmīgajiem cipariem.
Šajās pēdējās divās lietās, tas var būt noderīgi, lai domāt par
rakstiet liešana, izmēru maiņas foto.
Kad jūs doties no liela izmēra uz mazo izmēru, jūs nevarat redzēt
lietas kā acīmredzami, jo jūs zaudējis datus
formā pikseļi.
Tipa liešana var radīt problēmas, ja mēs
lietie Ints uz pludiņiem.
Tā pludiņus 32 bitu mašīna ir tikai 24
ievērojamas biti, viņi nevar precīzi atspoguļo vērtības
vairāk par 2 ar jaudu 24, 16.777.217 vai.
Tagad parunāsim par tiešu vai netiešu liešana.
Nepārprotama liešana ir tad, kad mēs rakstām veidu iekavās
pirms mainīgā nosaukumu.
Kā, piemēram, pirms mēs rakstīja int iekavās pirms mūsu
peldēt mainīgā X.
Tādā veidā, mēs int vērtību,
saīsināts vērtība 3,7 -
3.
Netiešā liešana ir tad, kad kompilators automātiski izmaina
tamlīdzīgi tipi uz super veidu, vai veic kādu citu veida
liešanas neprasot lietotājam rakstīt
papildu kodu.
Piemēram, kad mēs pievienot 5 un 1,1, mūsu vērtības jau ir
veidi saistīti ar tiem.
5 ir int, bet 1,1 ir peldēt.
Lai tos pievienotu, dators rada 5 uz pludiņa,
kas būtu tas pats, kas rakstveidā 5,0 ar
pirmo vietu.
Bet šādā veidā mēs sakām apgrozāmos 5, 5,0 vai, plus to, kas jau
peldēt, 1,1, un no turienes mēs faktiski var pievienot šos
vērtībām un iegūt vērtību 6.1.
Netieša liešana arī ļauj mums piešķirt mainīgos
Dažādu veidu uz otru.
Mēs vienmēr varam piešķirt mazāk precīzu ievadīts vairāk
precīzs vienu.
Piemēram, ja mums ir dubultā x, un int y -
un tām varētu būt nekādas vērtības, ko mēs noteikti tos -
mēs varam teikt x ir vienāds y.
Jo dubultā ir vairāk precizitāti nekā int, tāpēc mēs
nezaudēsiet informāciju.
No otras puses, tas ne vienmēr būs pareizi teikt
y vienāds x, jo dubultā varētu būt lielāka vērtība nekā
skaitlim.
Un tā skaitlim varētu nebūt spējīgs turēt visas
informāciju glabā divas reizes.
Netieša liešana tiek izmantota arī salīdzināšanas operatoru, piemēram,
lielāks, mazāks par vai vienlīdzība operators.
Tādā veidā mēs varam pateikt, ja 5,1 ir lielāks par 5, un mēs
izraisīt taisnība.
Jo 5 ir int, bet tas būs jāieskaita līdz pludiņa, lai
jāsalīdzina ar pludiņa 5,1, mēs gribētu teikt 5.1 ir
lielāks par 5,0.
Tas pats ir ar sakot, ja 2,0 vienāds vienāds ar 2.
Mēs gribētu arī saņemt taisnība, jo dators būs cast
2 skaitlim peldēt un pēc tam teikt 2,0 vienāds vienāds 2.0,
tā ir taisnība.
Neaizmirstiet, ka mēs varam arī nodot starp Ints un chars,
vai ASCII vērtības.
Chars arī jāsamazina uz bināro, kas ir iemesls, kāpēc jūs
var viegli konvertēt starp chars un to attiecīgo
ASCII vērtības.
Lai uzzinātu vairāk par šo, pārbaudiet mūsu video par ASCII.
Ja esat lietojis laiku, lai domā par to, kā dati glabājas,
tas sāk veikt daudz nozīmē.
Tas ir tāpat kā starpību starp vēju un vēja.
Dati ir vienādi, bet veids var mainīties, kā mēs
interpretēt.
Mans vārds ir Jordānija Jozwiak, tas CS50.