1 00:00:07,632 --> 00:00:10,270 [Powered by Google Translate] JORDAN JOZWIAK: Veids liešanas, kas vienkāršākā nozīmē, ir 2 00:00:10,270 --> 00:00:13,300 veids, mainīt datora interpretāciju dažu datu 3 00:00:13,300 --> 00:00:16,560 tieši vai netieši mainīt savu datu tipu. 4 00:00:16,560 --> 00:00:19,940 Piemēram, mainot int ar pludiņa, vai otrādi. 5 00:00:19,940 --> 00:00:21,550 Lai saprastu tipa liešana, mums ir nepieciešams 6 00:00:21,550 --> 00:00:22,680 sākt ar pamatiem - 7 00:00:22,680 --> 00:00:24,140 datu tipi paši. 8 00:00:24,140 --> 00:00:26,960 Datoru valodas, piemēram, C, visi mainīgie ir kaut kādas 9 00:00:26,960 --> 00:00:29,690 Datu tips, kas nosaka, kā dators, un tāpat 10 00:00:29,690 --> 00:00:32,140 lietotājs, interpretēs mainīgo. 11 00:00:32,140 --> 00:00:35,160 Skaitliskie datu tipi, piemēram, int, ilgi ilgi, pludiņu un 12 00:00:35,160 --> 00:00:38,110 dubultā, visi ir savas unikālas īpašības, un ir 13 00:00:38,110 --> 00:00:41,370 izmantots, lai norādītu vērtības dažādu diapazonu un precizitāti. 14 00:00:41,370 --> 00:00:44,800 Tipa liešana ļauj mums veikt peldošā punkta numuru, piemēram 15 00:00:44,800 --> 00:00:49,170 3,14 un saņemt daļu pirms decimālā, 3 šajā gadījumā, 16 00:00:49,170 --> 00:00:51,590 , lejot to uz int. 17 00:00:51,590 --> 00:00:53,900 Paņemsim piemēru no angļu valodas uz īsu 18 00:00:53,900 --> 00:00:56,910 pārskatīt veidu, un redzēt, kā veids liešana var mainīties 19 00:00:56,910 --> 00:00:59,380 kā mēs interpretēt gabals datus. 20 00:00:59,380 --> 00:01:05,269 Par datiem, pieņemsim simboliem šeit. 21 00:01:05,269 --> 00:01:07,570 Es tikai atsaukties uz šiem rūpīgi konfigurētas virzienos kā 22 00:01:07,570 --> 00:01:10,100 simboli, bet kā cilvēks, kas zina angļu valodu, 23 00:01:10,100 --> 00:01:12,750 Jūs uzreiz atzīst, ka tās ir, faktiski, vēstules. 24 00:01:12,750 --> 00:01:15,580 Jūs netieši saprot datu tipu. 25 00:01:15,580 --> 00:01:17,620 Aplūkojot šo burtu mēs varam redzēt divus 26 00:01:17,620 --> 00:01:20,140 dažādi vārdi, katrs ar savu nozīmi. 27 00:01:20,140 --> 00:01:25,530 Tur lietvārds, vējš, kā vējš pūš ārā. 28 00:01:25,530 --> 00:01:28,280 Un tur ir vārds, vējš, jo man ir nepieciešams, lai 29 00:01:28,280 --> 00:01:31,410 Noslēdzot savu analogo skatīties. 30 00:01:31,410 --> 00:01:33,420 Tas ir interesants piemērs, jo mēs varam redzēt 31 00:01:33,420 --> 00:01:36,270 kā veids, kas mēs piešķiram mūsu datiem, vai lietvārds vai 32 00:01:36,270 --> 00:01:39,080 vārds, izmaiņas, kā mēs izmantojam šos datus - 33 00:01:39,080 --> 00:01:41,730 jo vārds vēja vai vēja. 34 00:01:41,730 --> 00:01:44,100 Kaut dators nav vienalga par gramatiku un daļu 35 00:01:44,100 --> 00:01:47,750 angļu runas, pats galvenais princips. 36 00:01:47,750 --> 00:01:50,290 Tas ir, mēs varam mainīt interpretāciju precīzu 37 00:01:50,290 --> 00:01:53,140 paši dati atmiņā, vienkārši lejot to 38 00:01:53,140 --> 00:01:54,576 atšķirīga tipa. 39 00:01:54,576 --> 00:01:57,250 Šeit ir visbiežāk veida izmēri uz 32-bitu 40 00:01:57,250 --> 00:01:58,340 operētājsistēmu. 41 00:01:58,340 --> 00:02:02,070 Mums ir CHAR pēc 1 baitu, int un dēli pie 4 baiti, ilgi 42 00:02:02,070 --> 00:02:04,390 garš un pēc 8 baitu dubultā. 43 00:02:04,390 --> 00:02:07,670 Jo int aizņem 4 baitus, tas aizņem 32 bitus 44 00:02:07,670 --> 00:02:10,060 kad tas tiek saglabāts atmiņā kā bināru sēriju 45 00:02:10,060 --> 00:02:11,500 gada nullēm un uzņēmumiem. 46 00:02:11,500 --> 00:02:14,020 Kamēr mūsu mainīgā paliek kā int, ka 47 00:02:14,020 --> 00:02:16,740 Dators vienmēr pārvērst šos tiem un nullītes no 48 00:02:16,740 --> 00:02:19,120 bināro uz sākotnējo numuru. 49 00:02:19,120 --> 00:02:21,270 Tomēr mēs teorētiski varētu nodot tiem 32 50 00:02:21,270 --> 00:02:23,510 biti vērā virkni Būla veidiem. 51 00:02:23,510 --> 00:02:26,090 Un tad dators vairs redzēt vairākas, bet 52 00:02:26,090 --> 00:02:28,810 vietā kolekcija nullēm un uzņēmumiem. 53 00:02:28,810 --> 00:02:31,570 Mēs varētu arī mēģināt lasīt, ka dati par atšķirīgu ciparu 54 00:02:31,570 --> 00:02:34,660 rakstīt, vai pat kā virkne četriem burtiem. 55 00:02:34,660 --> 00:02:37,820 Kad nodarbojas ar numuriem liešana, jums ir jāapsver, kā 56 00:02:37,820 --> 00:02:40,470 par jūsu vērtības precizitāte tiks ietekmētas. 57 00:02:40,470 --> 00:02:43,240 Paturiet prātā, ka precizitāte var palikt tāds pats, 58 00:02:43,240 --> 00:02:47,150 vai jūs varat zaudēt precizitāti, bet jūs nekad nevar iegūt precizitāti. 59 00:02:47,150 --> 00:02:49,060 Iesim cauri visām trim visbiežāk veidus, ka jūs varat 60 00:02:49,060 --> 00:02:50,400 zaudē precizitāti. 61 00:02:50,400 --> 00:02:53,060 Liešana, apgrozāmos līdzekļus, lai int radīs truncation viss 62 00:02:53,060 --> 00:02:54,900 aiz komata, lai jūs esat atstājuši 63 00:02:54,900 --> 00:02:55,950 ar visu numuru. 64 00:02:55,950 --> 00:03:02,000 Ja mēs ņemtu float x kas būs vienāda 3,7, mēs varam nodot 65 00:03:02,000 --> 00:03:05,580 Šis rādītājs ir int x, vienkārši rakstot int jo 66 00:03:05,580 --> 00:03:07,050 iekavas. 67 00:03:07,050 --> 00:03:10,010 Ikreiz, kad mēs izmantojam šo terminu tieši šeit, mēs faktiski 68 00:03:10,010 --> 00:03:12,810 , izmantojot vērtību 3, jo mēs esam saīsināts 69 00:03:12,810 --> 00:03:14,880 viss aiz komata. 70 00:03:14,880 --> 00:03:17,210 Mēs varam arī pārvērst ilgi ilgi int, kas būs 71 00:03:17,210 --> 00:03:20,760 Tāpat novest pie zaudējuma augstas kārtas biti. 72 00:03:20,760 --> 00:03:23,910 Ilgi ilgi aizņem 8 baiti, vai 64 bitiem atmiņā. 73 00:03:23,910 --> 00:03:27,050 Tātad, kad mēs nodot to uz int kuram ir tikai 4 baitus, 32 vai 74 00:03:27,050 --> 00:03:29,820 biti, mēs būtībā kapāšanas pie visām biti, 75 00:03:29,820 --> 00:03:32,420 pārstāv augstākās bināro vērtības. 76 00:03:32,420 --> 00:03:34,690 Jūs varētu arī nodot dubultā ar pludiņa, kas dos 77 00:03:34,690 --> 00:03:37,340 Jūs visciešākā iespējamā pludiņš ar dubultās bez 78 00:03:37,340 --> 00:03:39,100 obligāti noapaļošana tā. 79 00:03:39,100 --> 00:03:41,840 Līdzīgi kā mūsu ilgi ilgi int pārveidi, zaudējumu 80 00:03:41,840 --> 00:03:44,890 precizitāte ir tāpēc dubultā satur vairāk datu. 81 00:03:44,890 --> 00:03:47,910 Dubultā ļaus jums uzglabāt 53 nozīmīgus biti, 82 00:03:47,910 --> 00:03:50,650 aptuveni 16 zīmīgajiem cipariem. 83 00:03:50,650 --> 00:03:53,050 Tā pludiņš būs tikai ļauj jums saglabāt 24 84 00:03:53,050 --> 00:03:56,235 ievērojamas biti, aptuveni 7 zīmīgajiem cipariem. 85 00:03:56,235 --> 00:03:58,700 Šajās pēdējās divās lietās, tas var būt noderīgi, lai domāt par 86 00:03:58,700 --> 00:04:01,200 rakstiet liešana, izmēru maiņas foto. 87 00:04:01,200 --> 00:04:03,860 Kad jūs doties no liela izmēra uz mazo izmēru, jūs nevarat redzēt 88 00:04:03,860 --> 00:04:05,600 lietas kā acīmredzami, jo jūs zaudējis datus 89 00:04:05,600 --> 00:04:07,530 formā pikseļi. 90 00:04:07,530 --> 00:04:09,270 Tipa liešana var radīt problēmas, ja mēs 91 00:04:09,270 --> 00:04:11,050 lietie Ints uz pludiņiem. 92 00:04:11,050 --> 00:04:13,920 Tā pludiņus 32 bitu mašīna ir tikai 24 93 00:04:13,920 --> 00:04:16,959 ievērojamas biti, viņi nevar precīzi atspoguļo vērtības 94 00:04:16,959 --> 00:04:22,750 vairāk par 2 ar jaudu 24, 16.777.217 vai. 95 00:04:22,750 --> 00:04:25,540 Tagad parunāsim par tiešu vai netiešu liešana. 96 00:04:25,540 --> 00:04:28,000 Nepārprotama liešana ir tad, kad mēs rakstām veidu iekavās 97 00:04:28,000 --> 00:04:29,430 pirms mainīgā nosaukumu. 98 00:04:29,430 --> 00:04:33,100 Kā, piemēram, pirms mēs rakstīja int iekavās pirms mūsu 99 00:04:33,100 --> 00:04:35,640 peldēt mainīgā X. 100 00:04:35,640 --> 00:04:37,200 Tādā veidā, mēs int vērtību, 101 00:04:37,200 --> 00:04:38,593 saīsināts vērtība 3,7 - 102 00:04:38,593 --> 00:04:40,370 3. 103 00:04:40,370 --> 00:04:42,970 Netiešā liešana ir tad, kad kompilators automātiski izmaina 104 00:04:42,970 --> 00:04:46,340 tamlīdzīgi tipi uz super veidu, vai veic kādu citu veida 105 00:04:46,340 --> 00:04:48,310 liešanas neprasot lietotājam rakstīt 106 00:04:48,310 --> 00:04:49,720 papildu kodu. 107 00:04:49,720 --> 00:04:53,550 Piemēram, kad mēs pievienot 5 un 1,1, mūsu vērtības jau ir 108 00:04:53,550 --> 00:04:55,680 veidi saistīti ar tiem. 109 00:04:55,680 --> 00:04:59,480 5 ir int, bet 1,1 ir peldēt. 110 00:04:59,480 --> 00:05:02,390 Lai tos pievienotu, dators rada 5 uz pludiņa, 111 00:05:02,390 --> 00:05:04,530 kas būtu tas pats, kas rakstveidā 5,0 ar 112 00:05:04,530 --> 00:05:06,476 pirmo vietu. 113 00:05:06,476 --> 00:05:13,210 Bet šādā veidā mēs sakām apgrozāmos 5, 5,0 vai, plus to, kas jau 114 00:05:13,210 --> 00:05:16,960 peldēt, 1,1, un no turienes mēs faktiski var pievienot šos 115 00:05:16,960 --> 00:05:18,640 vērtībām un iegūt vērtību 6.1. 116 00:05:21,170 --> 00:05:23,500 Netieša liešana arī ļauj mums piešķirt mainīgos 117 00:05:23,500 --> 00:05:25,590 Dažādu veidu uz otru. 118 00:05:25,590 --> 00:05:28,110 Mēs vienmēr varam piešķirt mazāk precīzu ievadīts vairāk 119 00:05:28,110 --> 00:05:29,250 precīzs vienu. 120 00:05:29,250 --> 00:05:37,060 Piemēram, ja mums ir dubultā x, un int y - 121 00:05:37,060 --> 00:05:40,120 un tām varētu būt nekādas vērtības, ko mēs noteikti tos - 122 00:05:40,120 --> 00:05:43,560 mēs varam teikt x ir vienāds y. 123 00:05:43,560 --> 00:05:46,340 Jo dubultā ir vairāk precizitāti nekā int, tāpēc mēs 124 00:05:46,340 --> 00:05:48,380 nezaudēsiet informāciju. 125 00:05:48,380 --> 00:05:50,420 No otras puses, tas ne vienmēr būs pareizi teikt 126 00:05:50,420 --> 00:05:54,060 y vienāds x, jo dubultā varētu būt lielāka vērtība nekā 127 00:05:54,060 --> 00:05:55,220 skaitlim. 128 00:05:55,220 --> 00:05:57,420 Un tā skaitlim varētu nebūt spējīgs turēt visas 129 00:05:57,420 --> 00:05:59,560 informāciju glabā divas reizes. 130 00:05:59,560 --> 00:06:02,610 Netieša liešana tiek izmantota arī salīdzināšanas operatoru, piemēram, 131 00:06:02,610 --> 00:06:06,410 lielāks, mazāks par vai vienlīdzība operators. 132 00:06:06,410 --> 00:06:13,050 Tādā veidā mēs varam pateikt, ja 5,1 ir lielāks par 5, un mēs 133 00:06:13,050 --> 00:06:14,750 izraisīt taisnība. 134 00:06:14,750 --> 00:06:18,470 Jo 5 ir int, bet tas būs jāieskaita līdz pludiņa, lai 135 00:06:18,470 --> 00:06:22,090 jāsalīdzina ar pludiņa 5,1, mēs gribētu teikt 5.1 ir 136 00:06:22,090 --> 00:06:24,550 lielāks par 5,0. 137 00:06:24,550 --> 00:06:31,320 Tas pats ir ar sakot, ja 2,0 vienāds vienāds ar 2. 138 00:06:31,320 --> 00:06:34,190 Mēs gribētu arī saņemt taisnība, jo dators būs cast 139 00:06:34,190 --> 00:06:39,750 2 skaitlim peldēt un pēc tam teikt 2,0 vienāds vienāds 2.0, 140 00:06:39,750 --> 00:06:41,660 tā ir taisnība. 141 00:06:41,660 --> 00:06:44,180 Neaizmirstiet, ka mēs varam arī nodot starp Ints un chars, 142 00:06:44,180 --> 00:06:46,350 vai ASCII vērtības. 143 00:06:46,350 --> 00:06:49,690 Chars arī jāsamazina uz bināro, kas ir iemesls, kāpēc jūs 144 00:06:49,690 --> 00:06:51,920 var viegli konvertēt starp chars un to attiecīgo 145 00:06:51,920 --> 00:06:53,260 ASCII vērtības. 146 00:06:53,260 --> 00:06:56,180 Lai uzzinātu vairāk par šo, pārbaudiet mūsu video par ASCII. 147 00:06:56,180 --> 00:06:58,080 Ja esat lietojis laiku, lai domā par to, kā dati glabājas, 148 00:06:58,080 --> 00:06:59,990 tas sāk veikt daudz nozīmē. 149 00:06:59,990 --> 00:07:02,790 Tas ir tāpat kā starpību starp vēju un vēja. 150 00:07:02,790 --> 00:07:05,490 Dati ir vienādi, bet veids var mainīties, kā mēs 151 00:07:05,490 --> 00:07:06,720 interpretēt. 152 00:07:06,720 --> 00:07:10,430 Mans vārds ir Jordānija Jozwiak, tas CS50.