1 00:00:01,984 --> 00:00:07,450 [Powered by Google Translate] [ELECTRONIC STATI ZVUCI] 2 00:00:07,450 --> 00:00:11,320 ROB: Ok, tako da ono što smo upravo vas doveo je CS50 mjesta. 3 00:00:11,320 --> 00:00:12,325 ALI: Čekaj, čekaj natrag gore. 4 00:00:12,325 --> 00:00:13,175 Dobrodošli na sekciji! 5 00:00:13,175 --> 00:00:13,860 ROB: Dobro došli u sekciji! 6 00:00:13,860 --> 00:00:14,742 ALI: Jupi! 7 00:00:14,742 --> 00:00:16,840 ROB: Supersection! 8 00:00:16,840 --> 00:00:18,610 ALI: Ja sam Ali i to je Rob. 9 00:00:18,610 --> 00:00:20,680 Ok, sada ćemo objasniti prostore. 10 00:00:20,680 --> 00:00:23,650 ROB: Dakle, ono što smo upravo vas doveo je CS50 mjesta. 11 00:00:23,650 --> 00:00:29,260 Vi ćete biti koristeći ovaj puno u odjeljcima ovaj semestar. 12 00:00:29,260 --> 00:00:32,110 Uglavnom, već smo imali ste preuzeli aparata. 13 00:00:32,110 --> 00:00:38,630 A možete misliti CS50 prostore kao web sučelja govori na aparatu 14 00:00:38,630 --> 00:00:40,670 da smo na nekom poslužitelju negdje. 15 00:00:40,670 --> 00:00:42,990 Dakle, možete pokrenuti svoj kôd u ovom sučelju, a mi ćemo 16 00:00:42,990 --> 00:00:44,180 vidjeti kako to učiniti stvari. 17 00:00:44,180 --> 00:00:48,200 Također možete pogledati kôd drugih ljudi u sekciji, i - 18 00:00:48,200 --> 00:00:51,920 ALI: I kao što su neki ljudi saznali, možete razgovarati ljude na strani. 19 00:00:51,920 --> 00:00:54,230 I svi ćemo ga vidjeti, previše, tako da je uzbudljivo. 20 00:00:54,230 --> 00:00:55,655 Hajde, dođi i sjedni. 21 00:00:55,655 --> 00:00:57,060 Sjesti. 22 00:00:57,060 --> 00:00:57,840 >> ROB: Dakle, dijelovi su - 23 00:00:57,840 --> 00:00:59,380 ALI: Ne, ne, vi možete doći. 24 00:00:59,380 --> 00:01:03,356 ROB: Sekcije će biti puno više interaktivni ovaj semestar. 25 00:01:03,356 --> 00:01:04,180 ALI: Oh, on je kao - 26 00:01:04,180 --> 00:01:05,840 Oh. 27 00:01:05,840 --> 00:01:07,530 Ok, cool. 28 00:01:07,530 --> 00:01:15,630 Dakle, ako vi samo dolaze u, možete otići na ovaj link, ako ja mogu dobiti 29 00:01:15,630 --> 00:01:20,190 tamo, upravo tamo. 30 00:01:20,190 --> 00:01:22,780 Mi stvarno ne mogu ga napisati, jer ne postoji prostor za glačanje, ali ovaj link 31 00:01:22,780 --> 00:01:27,160 ovdje, otići na koji na svojim računalima, a vi ćete ući CS50 32 00:01:27,160 --> 00:01:29,810 Prostori, što je prilično cool stvar. 33 00:01:32,460 --> 00:01:33,830 Ok. 34 00:01:33,830 --> 00:01:35,370 Imate li problem? 35 00:01:35,370 --> 00:01:39,930 ROB: Dakle, možete pronaći probleme - 36 00:01:39,930 --> 00:01:42,720 moramo biti u stanju napisati ovo negdje. 37 00:01:42,720 --> 00:01:50,040 Dakle, ako idete na cs50.net/psets i to je haker supersection - 38 00:01:50,040 --> 00:01:55,870 i idete u Hacker izdanje pset jednom, pogledajte specifikaciju 39 00:01:55,870 --> 00:01:57,620 negdje dolje na stranici - 40 00:02:01,940 --> 00:02:04,280 >> ALI: Dakle, u osnovi, dok je Rob je u potrazi, što ćemo učiniti u 41 00:02:04,280 --> 00:02:06,650 dio danas je tu je dio problema - 42 00:02:06,650 --> 00:02:07,600 ROB: - na stranici osam. 43 00:02:07,600 --> 00:02:09,300 ALI: - zove dio problema - 44 00:02:09,300 --> 00:02:10,280 ROB: Odjel pitanja. 45 00:02:10,280 --> 00:02:11,630 ALI: Nažalost, dio pitanja. 46 00:02:11,630 --> 00:02:14,450 I oni su ono što ćemo ići preko - 47 00:02:14,450 --> 00:02:16,370 oni su ono što ćemo ići preko danas u sekciji. 48 00:02:16,370 --> 00:02:20,010 I mi ćemo ga kodirati na CS50 prostore, a nadamo se da će raditi. 49 00:02:20,010 --> 00:02:22,210 A mi samo možemo govoriti kroz njih. 50 00:02:22,210 --> 00:02:24,510 I vi možete postaviti pitanja kad god osjećate - 51 00:02:24,510 --> 00:02:27,890 >> ROB: Dakle, ovo je uzimajući biti uobičajena stvar kod većine psets. 52 00:02:27,890 --> 00:02:31,000 Mislim s ovom jednom, ona kaže da ne morate predati ta pitanja u. 53 00:02:31,000 --> 00:02:36,780 No, ideja je da se ta pitanja staviti na pset, a možete doći 54 00:02:36,780 --> 00:02:39,790 za poglavlje imati na ta pitanja odgovorio. 55 00:02:39,790 --> 00:02:42,730 Ili, ako ne dođe do dijela, možete im odgovoriti na svoju ruku, ili dobiti 56 00:02:42,730 --> 00:02:44,250 pomoći u uredovno vrijeme ili nešto. 57 00:02:44,250 --> 00:02:47,540 No, to su pitanja koja bi trebalo da vas pripremu za problematičnog setu. 58 00:02:47,540 --> 00:02:50,910 I na hakerske izdanju, puno pitanja može biti samo o 59 00:02:50,910 --> 00:02:54,170 širi svoj trenutni CS znanje. 60 00:02:54,170 --> 00:02:55,370 ALI: Da, prilično mnogo. 61 00:02:55,370 --> 00:02:57,950 >> Ok, tako da je svatko na CS50 prostore? 62 00:02:57,950 --> 00:02:59,457 Bok, došli u. 63 00:02:59,457 --> 00:03:00,828 ZVUČNIK 1: Možemo li vidjeti URL još jednom? 64 00:03:04,030 --> 00:03:07,000 Rob: Da, to će biti lakše nakon što su zapravo u svojim dijelovima, a 65 00:03:07,000 --> 00:03:10,760 Vaš TF samo mogu e da URL unaprijed. 66 00:03:10,760 --> 00:03:11,870 ALI: Jupi, sjednite. 67 00:03:11,870 --> 00:03:13,170 Postoje mjesta ovdje. 68 00:03:13,170 --> 00:03:14,420 Prednji nije tako loše. 69 00:03:17,112 --> 00:03:18,362 Što? 70 00:03:20,650 --> 00:03:23,590 Dakle, CS50 mjesta, mi smo uzimajući tamo. 71 00:03:23,590 --> 00:03:26,760 Se bilo tko imati bilo kakvih pitanja prije nego što smo dobili u - Što? 72 00:03:26,760 --> 00:03:28,060 ROB: Tu čak nije bilo krede. 73 00:03:28,060 --> 00:03:29,270 [Nečujan] 74 00:03:29,270 --> 00:03:31,540 ALI: Žao mi je. 75 00:03:31,540 --> 00:03:32,950 Ti bi mogao koristiti svoje nokte? 76 00:03:32,950 --> 00:03:38,210 Mi smo u samom low-tech sobu za vrlo high-tech klasi. 77 00:03:38,210 --> 00:03:40,795 Ok, svatko je vrsta dobra? 78 00:03:40,795 --> 00:03:44,310 Ima li netko još uvijek pitanja o tome? 79 00:03:44,310 --> 00:03:48,540 Kao što sam rekao prije, da ćemo proći kroz dio pitanja u 80 00:03:48,540 --> 00:03:51,340 su pset specifikacije. 81 00:03:51,340 --> 00:03:53,490 Dakle, tu je samo par problema koje ćemo 82 00:03:53,490 --> 00:03:57,490 kodirati u CS50 prostore. 83 00:03:57,490 --> 00:03:58,740 Jesu li svi dobro? 84 00:04:01,010 --> 00:04:01,360 Ok. 85 00:04:01,360 --> 00:04:02,312 Dobro? 86 00:04:02,312 --> 00:04:04,260 ROB: Imate li laptop? 87 00:04:04,260 --> 00:04:05,150 ALI: Možete družiti s Lucasom. 88 00:04:05,150 --> 00:04:06,960 On je sjedio tik do vas. 89 00:04:06,960 --> 00:04:10,030 Lijepljenje vrijeme. 90 00:04:10,030 --> 00:04:10,990 >> ROB: Dakle, početi s prvim problemom? 91 00:04:10,990 --> 00:04:11,260 ALI: Da. 92 00:04:11,260 --> 00:04:11,820 Možemo početi. 93 00:04:11,820 --> 00:04:12,390 Želite li mi - 94 00:04:12,390 --> 00:04:13,700 Ja mogu ići. 95 00:04:13,700 --> 00:04:16,666 Dakle, mi ćemo ići na pset naočale. 96 00:04:16,666 --> 00:04:17,640 Oh, zašto je to - 97 00:04:17,640 --> 00:04:18,890 ROB: Kontrola. 98 00:04:21,769 --> 00:04:25,770 ALI: Ok, tako da ćemo u odgovoru te stvari kao dobro? 99 00:04:25,770 --> 00:04:26,190 ROB: Oh, da. 100 00:04:26,190 --> 00:04:27,280 Dakle - 101 00:04:27,280 --> 00:04:29,675 ALI: Oh, nije svatko gledati Rob je glumi gaćice? 102 00:04:32,430 --> 00:04:33,360 Ok, cool. 103 00:04:33,360 --> 00:04:36,870 ROB: Da, ja ne mislim da nužno očekivati ​​da imate 104 00:04:36,870 --> 00:04:40,650 ga gledao prije dolaska u tom dijelu, ali možemo razgovarati o onima 105 00:04:40,650 --> 00:04:43,870 Problemi unaprijed, jer oni su pod rubrikom pitanja stvari. 106 00:04:43,870 --> 00:04:46,480 Dakle, ako niste ga gledali, ne brinite. 107 00:04:46,480 --> 00:04:48,630 Oni koji imaju mogu pokušati odgovoriti. 108 00:04:48,630 --> 00:04:53,875 >> Dakle, prvo pitanje, što je pre-procesor, koliko # ne uključuje 109 00:04:53,875 --> 00:04:56,080 odnose? 110 00:04:56,080 --> 00:04:58,440 Tako se bilo tko imati odgovor za to? 111 00:04:58,440 --> 00:04:59,320 Ali: Vi možete razgovarati van. 112 00:04:59,320 --> 00:05:00,308 Naravno, samo naprijed. 113 00:05:00,308 --> 00:05:03,766 ZVUČNIK 2: # include je neki unaprijed napisani kod, a umjesto 114 00:05:03,766 --> 00:05:08,706 ga kopirati i zalijepiti u svoj program, a samo reći to su, 115 00:05:08,706 --> 00:05:14,140 pre-procesor zna da je tu i da ga treba dodati u 116 00:05:14,140 --> 00:05:17,520 kasnije ili prije nego bilo što drugo se događa. 117 00:05:17,520 --> 00:05:18,466 ALI: Da, strašan. 118 00:05:18,466 --> 00:05:19,440 Cool. 119 00:05:19,440 --> 00:05:23,820 ROB: Dakle, kada ste zapravo sastavljanje programa, pre-procesor je to 120 00:05:23,820 --> 00:05:25,230 Prvi korak. 121 00:05:25,230 --> 00:05:27,620 Kompilacija se događa u četiri velika koraka. 122 00:05:27,620 --> 00:05:31,120 Dakle, pre-procesor je prvi veliki jedan, i to je taj tip koji ide 123 00:05:31,120 --> 00:05:33,510 putem i izgleda za sve ove hash simbola. 124 00:05:33,510 --> 00:05:36,610 I bilo linija koja počinje s mljeveno meso, pre-procesor gleda na to i vidi 125 00:05:36,610 --> 00:05:37,880 ako se može obraditi. 126 00:05:37,880 --> 00:05:43,800 Dakle # include govori pred-procesor tražiti neke cs50.h 127 00:05:43,800 --> 00:05:47,830 podnijeti i samo kopirati i zalijepiti svoje sadržaje u ovoj datoteci. 128 00:05:47,830 --> 00:05:50,970 Dakle, možete zaista # uključiti sve što želite, ali to je uglavnom će biti 129 00:05:50,970 --> 00:05:53,700 H. Datoteke. 130 00:05:53,700 --> 00:05:55,820 Nismo došli do # define još, tako da ne smeta. 131 00:05:55,820 --> 00:05:57,620 ALI: Da, mi smo dobro na toj jednoj. 132 00:05:57,620 --> 00:05:59,450 Se bilo tko imati bilo kakvih pitanja o tome? 133 00:05:59,450 --> 00:06:01,090 Jesmo li dobro? 134 00:06:01,090 --> 00:06:02,430 Sljedeća pitanje. 135 00:06:02,430 --> 00:06:07,096 >> ZVUČNIK 3: U Ukratko, bilo je nešto o c kao dobro.? 136 00:06:07,096 --> 00:06:09,110 Je li to relevantno ili je to nebitno? 137 00:06:09,110 --> 00:06:11,210 ROB: O C s pre-procesor.? 138 00:06:11,210 --> 00:06:13,990 ZVUČNIK 3: Da, ili sam napraviti nešto gore? 139 00:06:13,990 --> 00:06:18,290 ROB: Tako je kratka možda pokazuje pred-obrada ovu datoteku i 140 00:06:18,290 --> 00:06:24,240 . ga izlaza na drugu c datoteku, tako da možete unaprijed obraditi ovu sliku - 141 00:06:24,240 --> 00:06:30,000 kada samo trčanje kao, čine halo ili zveka hello.c, radite sve 142 00:06:30,000 --> 00:06:31,730 Kompilacija u jednom velikom koraku. 143 00:06:31,730 --> 00:06:34,780 No, možete i eksplicitno to učiniti u svojim odvojenim koracima. 144 00:06:34,780 --> 00:06:36,950 Tako je prvi možete ga unaprijed obraditi. 145 00:06:36,950 --> 00:06:42,260 Zatim možete sastaviti, onda možete sastaviti, a zatim možete povezati. 146 00:06:42,260 --> 00:06:43,620 Mi ćemo doći do onih drugih. 147 00:06:43,620 --> 00:06:47,410 No, predobradu, te vrsta pre-procesu, a onda ide u 148 00:06:47,410 --> 00:06:49,270 drugi. c datoteka. 149 00:06:49,270 --> 00:06:51,430 Zbog pre-obrada ne mijenja ništa. 150 00:06:51,430 --> 00:06:52,800 To je samo hrpa kopiranje i lijepljenje. 151 00:06:52,800 --> 00:06:56,760 Možete ručno mogao kopirati i zalijepiti ga sami. 152 00:06:56,760 --> 00:06:59,630 ALI:. I da bude jasno, c datoteka C datoteku, tako da je 153 00:06:59,630 --> 00:07:00,930 napisan u C koda. 154 00:07:00,930 --> 00:07:03,300 Tako to ide iz C koda u C koda. 155 00:07:03,300 --> 00:07:05,210 Vi samo dodavanjem više kod sa kilogramu. 156 00:07:05,210 --> 00:07:08,575 ROB: Kad ste ga već obrađena, to je još uvijek vrijedi C datoteka. 157 00:07:08,575 --> 00:07:09,940 ZVUČNIK 3: Ok. 158 00:07:09,940 --> 00:07:10,540 ALI: Dobro pitanje. 159 00:07:10,540 --> 00:07:11,370 Sviđa mi se to. 160 00:07:11,370 --> 00:07:12,755 Dobro, iduće pitanje. 161 00:07:17,870 --> 00:07:19,660 >> Što je prevodilac? 162 00:07:19,660 --> 00:07:20,824 Svatko? 163 00:07:20,824 --> 00:07:21,286 Da. 164 00:07:21,286 --> 00:07:24,650 ZVUČNIK 4: To mijenja prethodno obrađena kod u skupštini. 165 00:07:24,650 --> 00:07:25,110 ALI: Savršeno. 166 00:07:25,110 --> 00:07:25,390 ROB: Da. 167 00:07:25,390 --> 00:07:25,720 ALI: Cool. 168 00:07:25,720 --> 00:07:28,270 ROB: Dakle, to je ono što prevodilac radi posebno 169 00:07:28,270 --> 00:07:30,740 kada smo pomoću zveka. 170 00:07:30,740 --> 00:07:35,100 U vrlo općenitom smislu, prevodilac je baš kao i uzimanje koda u jednom jeziku 171 00:07:35,100 --> 00:07:37,070 i pretvarajući ga u drugom jeziku. 172 00:07:37,070 --> 00:07:38,370 Dakle, u C - 173 00:07:38,370 --> 00:07:43,750 ili, dobro, zveka je uzimanje kôd koji je u C i pretvarajući ga na skupštini. 174 00:07:43,750 --> 00:07:46,560 I ne morate biti u stanju razumjeti sklop uopće. 175 00:07:46,560 --> 00:07:49,830 Ali to je jezik koji to ga pretvara u. 176 00:07:49,830 --> 00:07:50,230 >> ALI: Ok. 177 00:07:50,230 --> 00:07:52,920 A onda, što je monter? 178 00:07:52,920 --> 00:07:54,270 Svatko? 179 00:07:54,270 --> 00:07:56,810 ZVUČNIK 5: [nečujno] u binarni? 180 00:07:56,810 --> 00:07:57,260 ALI: Žao mi je, što? 181 00:07:57,260 --> 00:07:58,760 ZVUČNIK 5: [nečujno] u binarni? 182 00:07:58,760 --> 00:07:59,260 ROB: Yep. 183 00:07:59,260 --> 00:07:59,880 ALI: Da. 184 00:07:59,880 --> 00:08:01,960 ROB: Dakle, monter - 185 00:08:01,960 --> 00:08:05,830 Skupština kod je stvarno, stvarno blizu onoga što je vaše računalo može razumjeti, 186 00:08:05,830 --> 00:08:09,390 ali sjetite se da to ne razumijem tekst 187 00:08:09,390 --> 00:08:10,630 da je Skupština broj. 188 00:08:10,630 --> 00:08:14,570 Morate ga pretvoriti u ravnoj 1s i 0s. 189 00:08:14,570 --> 00:08:17,000 To je kao izravan proces prevođenja. 190 00:08:17,000 --> 00:08:19,450 Mi samo mogu vam dati tablicu koja karata što svaki 191 00:08:19,450 --> 00:08:21,880 montaža upute znači. 192 00:08:21,880 --> 00:08:24,340 No, monter samo radi ovaj prijevod za vas. 193 00:08:24,340 --> 00:08:28,790 To je pretvarajući sklopa kod u 1s i 0s. 194 00:08:28,790 --> 00:08:30,870 >> ALI: I onda, za razliku od prošle, što je spojnica? 195 00:08:30,870 --> 00:08:35,070 A kako ne-lcs50 odnose? 196 00:08:35,070 --> 00:08:37,010 Svatko? 197 00:08:37,010 --> 00:08:41,440 ROB: Ovo je najteži, a najmanje jednom objasnio u prevodilac video. 198 00:08:41,440 --> 00:08:48,980 ALI: Da li itko sjetiti vidom-lcs50 u zapovijedanja? 199 00:08:48,980 --> 00:08:50,690 ZVUČNIK 6: Kada je otišao i napraviti. 200 00:08:50,690 --> 00:08:51,980 ALI: To je u napraviti. 201 00:08:51,980 --> 00:08:55,780 Da, super, ok. 202 00:08:55,780 --> 00:09:02,024 Je li bilo nagađanja ili nejasne - da, idu. 203 00:09:02,024 --> 00:09:06,370 ZVUČNIK 7: Nisam siguran, jer kratko je stvarno [nečujno], ali je to bilo 204 00:09:06,370 --> 00:09:12,244 nešto o radi zasebne datoteke sa svakim knjižnici, a zatim stavljanjem 205 00:09:12,244 --> 00:09:13,620 ih sve zajedno u jednoj knjižnici? 206 00:09:13,620 --> 00:09:14,400 ROB: Da. 207 00:09:14,400 --> 00:09:23,000 Dakle, kada imate hello.c, to je stvarno jednostavan program. 208 00:09:23,000 --> 00:09:25,570 Stvarno si samo radiš jednu stvar u tome. 209 00:09:25,570 --> 00:09:27,400 No, kada ste dobili u drugim programima - 210 00:09:27,400 --> 00:09:31,700 i mislim da čak i kada ste GetString u svoje programe, morate početi 211 00:09:31,700 --> 00:09:33,830 uključujući i druge datoteke. 212 00:09:33,830 --> 00:09:38,000 Dakle CS50 knjižnica je jedna takva datoteka u kojoj imamo implementacije 213 00:09:38,000 --> 00:09:40,750 od GetString i GetInt i svih tih stvari. 214 00:09:40,750 --> 00:09:45,540 Dakle, ono što linker ipak to ide okolo u potrazi kroz sve ove 215 00:09:45,540 --> 00:09:49,400 slika, vidjevši gdje su funkcije definirane, pazeći da kad ja zovem 216 00:09:49,400 --> 00:09:52,440 GetString negdje, ona zna da GetString znači da je 217 00:09:52,440 --> 00:09:54,910 GetString više u CS50 knjižnici. 218 00:09:54,910 --> 00:09:58,895 Dakle linker traje samo sve ove datoteke ih razbija zajedno, a sada 219 00:09:58,895 --> 00:10:01,020 imate izvršnu. 220 00:10:01,020 --> 00:10:05,600 Dakle, imajte na umu, ako ste koristeći CS50 biblioteku, morate oba 221 00:10:05,600 --> 00:10:10,370 # Include na vrhu, a zatim iu vašem marku zapovijedanja, kao i ti 222 00:10:10,370 --> 00:10:12,630 rekao je, morate imati-lcs50. 223 00:10:12,630 --> 00:10:15,720 Dakle, ne možete samo imati jedan. 224 00:10:15,720 --> 00:10:18,294 Dakle, to je samo nešto što treba imati na umu za ubuduće. 225 00:10:18,294 --> 00:10:22,550 >> ZVUČNIK 8: Dakle, recimo da je bio još jedan knjižnica, kao cs51.h, bi mi 226 00:10:22,550 --> 00:10:26,780 Također morate dodati-lcs51? 227 00:10:26,780 --> 00:10:32,390 ROB: Jedini razlog zašto to-lcs50 savršeno funkcionira jer imamo taj skup 228 00:10:32,390 --> 00:10:35,800 u određenom mjestu u vašim aparatima, tako da zna što 229 00:10:35,800 --> 00:10:38,550 -Lcs50 znači. 230 00:10:38,550 --> 00:10:43,240 Mi samo mogu vam dati cs50.c datoteku, a onda ste mogli prevesti ga, rekavši 231 00:10:43,240 --> 00:10:49,050 Jeka hello.c cs50.c, a onda bi vaš izvršnu stavljanjem 232 00:10:49,050 --> 00:10:50,350 one dvije datoteke zajedno. 233 00:10:50,350 --> 00:10:56,520 On zna da-lcs50 znači cs50.c više u nekom direktoriju koji smo naveli u 234 00:10:56,520 --> 00:10:58,350 Vaši aparati. 235 00:10:58,350 --> 00:11:04,290 Dakle, ako ste htjeli cs51.c biti specifiable za samo govore-lcs51, 236 00:11:04,290 --> 00:11:06,760 onda mi također bi trebao staviti ga u taj direktorij, tako da ne zna gdje se 237 00:11:06,760 --> 00:11:08,636 tražiti ga. 238 00:11:08,636 --> 00:11:10,510 ALI: Što je vaše pitanje? 239 00:11:10,510 --> 00:11:13,975 >> ZVUČNIK 7: Zašto morate povezati CS50 240 00:11:13,975 --> 00:11:18,940 ako - wasn't to kopirati / lijepiti na prvom koraku kada ga prethodno obrađenog? 241 00:11:18,940 --> 00:11:19,700 ALI: Želite li ga uzeti? 242 00:11:19,700 --> 00:11:20,880 ROB: Naravno. 243 00:11:20,880 --> 00:11:28,028 Dakle cs50.h datoteka je odvojen od cs50.c C datoteci. 244 00:11:28,028 --> 00:11:33,652 Jeste li stečen funkcionirati prototipove u razredu? 245 00:11:33,652 --> 00:11:34,350 Ok. 246 00:11:34,350 --> 00:11:40,255 Dakle, u osnovi, cs50.h datoteka samo će kopirati i zalijepiti - 247 00:11:40,255 --> 00:11:44,040 ALI: Dali vi znate što su potpisi? 248 00:11:44,040 --> 00:11:46,580 Ok, tako da prilično mnogo, ako pogledate - 249 00:11:46,580 --> 00:11:50,530 ROB: Idemo hinjena cs50.h ne postoji. 250 00:11:50,530 --> 00:11:52,960 Sada ovu sliku - 251 00:11:52,960 --> 00:11:56,090 radite string s = GetString. 252 00:11:56,090 --> 00:11:59,350 Ali kad smo došli do ove točke u kodu, to nema pojma što 253 00:11:59,350 --> 00:12:00,230 GetString je. 254 00:12:00,230 --> 00:12:02,600 To ne zna da je funkcija, budući da ste ga zovete. 255 00:12:02,600 --> 00:12:06,500 Ali, to ne zna da je to zapravo trebalo da se vrati niz. 256 00:12:06,500 --> 00:12:14,530 Dakle, kao što sam rekao, niz s = GetInt, to ne bi bilo smisla, jer 257 00:12:14,530 --> 00:12:17,530 ti si potpisivanja integer do niza. 258 00:12:17,530 --> 00:12:22,270 No, to ne znam da GetString nema smisla, jer to ne 259 00:12:22,270 --> 00:12:24,380 znam da GetString vraća string. 260 00:12:24,380 --> 00:12:28,220 Dakle, ono što cs50.h kaže nešto poput ovoga. 261 00:12:33,070 --> 00:12:37,750 ALI: Dakle, ono što je Rob piše, to je obećanje na način da će se 262 00:12:37,750 --> 00:12:41,280 imati tu funkciju pod nazivom GetString. 263 00:12:41,280 --> 00:12:45,250 ROB: To je sve što cs50.h je kopiranje i lijepljenje ovdje, kao i 264 00:12:45,250 --> 00:12:47,620 kao GetInt i svih tih stvari. 265 00:12:47,620 --> 00:12:51,520 I to samo govori da GetString ne vraća niz. 266 00:12:51,520 --> 00:12:54,830 Vi ne znate kako se to provodi, no kada smo dobili na toj liniji, sada 267 00:12:54,830 --> 00:12:57,760 ona zna da je to ispravno vraća string. 268 00:12:57,760 --> 00:13:03,022 >> ZVUČNIK 9: Dakle, ako mi ne zamaram s # include stvar i umjesto 269 00:13:03,022 --> 00:13:07,130 Samo je napisao prototip za one koji se zapravo događa za korištenje? 270 00:13:07,130 --> 00:13:07,330 ROB: Da. 271 00:13:07,330 --> 00:13:08,870 Tako ćemo pokrenuti ovo. 272 00:13:08,870 --> 00:13:09,110 ZVUČNIK 9: Je li to? 273 00:13:09,110 --> 00:13:13,670 Dakle, po defaultu, to će učiniti-l do CS50 samo zato -. 274 00:13:13,670 --> 00:13:14,740 ROB: - izraz. 275 00:13:14,740 --> 00:13:19,370 ALI: Da, jer kao što je rekao, to je u marku datoteku. 276 00:13:19,370 --> 00:13:24,040 ROB: cs50.h također se događa da se typedef char * na žici. 277 00:13:24,040 --> 00:13:26,950 Možete se potpuno ignoriraju što to znači za sada. 278 00:13:26,950 --> 00:13:31,430 Ali to je također nešto uključeno u cs50.h. 279 00:13:31,430 --> 00:13:34,230 Tako sada stvari radio savršeno u redu. 280 00:13:34,230 --> 00:13:40,770 Ona radi točno isto kao što je bio kad smo imali 281 00:13:40,770 --> 00:13:45,120 # include. 282 00:13:45,120 --> 00:13:49,200 I tako, uključujući cs50.h događa preko-uključuje stvari koje trebate - 283 00:13:49,200 --> 00:13:53,080 kao, ne koristite GetInt u ovom programu, ali to ne smeta. 284 00:13:53,080 --> 00:13:55,010 To samo ću ga ignorirati. 285 00:13:55,010 --> 00:14:02,400 ALI: I onda kada to učinite-lcs50 ovamo i ovdje, ono što se događa 286 00:14:02,400 --> 00:14:05,290 na je da to ima stvarni implementable koda. 287 00:14:05,290 --> 00:14:07,530 Dakle, to je gdje je to zapravo, radi - 288 00:14:07,530 --> 00:14:09,090 pisanje koda za GetString. 289 00:14:09,090 --> 00:14:11,180 Dakle, to nije samo obećanje više. 290 00:14:11,180 --> 00:14:16,520 To je zapravo prolazi kroz te uzimanje string i sve te stvari. 291 00:14:16,520 --> 00:14:17,600 Smisla? 292 00:14:17,600 --> 00:14:22,640 Pitanja? U redu. 293 00:14:22,640 --> 00:14:24,466 Cool grah. 294 00:14:24,466 --> 00:14:27,630 >> ROB: Sada možemo prijeći na stvarni broj. 295 00:14:27,630 --> 00:14:28,780 ALI: Ok. 296 00:14:28,780 --> 00:14:33,340 Dakle, ovdje je prvi problem. 297 00:14:33,340 --> 00:14:36,910 Dakle, ona kaže napisati program koji traži od korisnika za mala 298 00:14:36,910 --> 00:14:40,540 pismo, a zatim pretvara ga u velika slova bez korištenja bitovni 299 00:14:40,540 --> 00:14:43,590 operacija, kao i po uzorku izlaz ispod. 300 00:14:43,590 --> 00:14:48,780 Dakle, što možete vidjeti, možete pokrenuti program sa. / A.out, a zatim si 301 00:14:48,780 --> 00:14:53,320 će staviti u mala slova, a zatim vaš program treba dati kapital 302 00:14:53,320 --> 00:15:00,590 A. Pa zašto ne vi svi dati ga metak na CS50 prostore? 303 00:15:00,590 --> 00:15:03,360 Dakle, vi svi možete ići ovdje. 304 00:15:03,360 --> 00:15:06,650 A možete izbrisati sve kod ovdje. 305 00:15:06,650 --> 00:15:12,140 I onda možete ići naprijed i početi kodiranja stvar. 306 00:15:12,140 --> 00:15:14,590 ROB: Vjerojatno ćete želite koristiti getchar, koji je 307 00:15:14,590 --> 00:15:16,190 uključena u CS50 knjižnici. 308 00:15:16,190 --> 00:15:18,770 ALI: Mislim da bi moglo biti bolje ako spremite gornji dio. 309 00:15:21,452 --> 00:15:23,805 Dakle, možda želite samo promijeniti stvari u sredini. 310 00:15:28,710 --> 00:15:29,070 Idi naprijed i raditi. 311 00:15:29,070 --> 00:15:30,530 Slobodno raditi jedni s drugima. 312 00:15:30,530 --> 00:15:32,360 Rob: I vi možete postaviti pitanja ako imate - 313 00:15:32,360 --> 00:15:33,450 >> ZVUČNIK 10: Što je bitovni operacije? 314 00:15:33,450 --> 00:15:35,100 ROB: Dakle, zanemariti činjenicu da za ovaj problem. 315 00:15:35,100 --> 00:15:36,330 ALI: Ako to ne znam, to je dobro. 316 00:15:36,330 --> 00:15:38,300 ROB: Mi ćemo ga koristiti u sljedećem problemu. 317 00:15:38,300 --> 00:15:40,750 Ali ako ne razumijete bitovni operator je, to je u redu. 318 00:15:40,750 --> 00:15:43,575 ZVUČNIK 10: Je li to kao da se pretvara u ASCII kodu? 319 00:15:43,575 --> 00:15:44,050 ALI: Ne 320 00:15:44,050 --> 00:15:44,750 ROB: Ne 321 00:15:44,750 --> 00:15:46,220 Možete to učiniti za ovaj problem. 322 00:15:46,220 --> 00:15:48,280 ZVUČNIK 10: Kako ćete to učiniti? 323 00:15:48,280 --> 00:15:52,460 Dakle, ako samo sam morao negdje napisati - 324 00:15:52,460 --> 00:15:54,670 ALI: Ili nešto pisati. 325 00:15:54,670 --> 00:15:56,780 ROB: Mogao bih samo vrsta tipa u ovo. 326 00:15:56,780 --> 00:15:59,045 ALI: Tip na vrhu. 327 00:15:59,045 --> 00:16:01,390 ROB: Oh, ja sjedim na mikrofonu. 328 00:16:01,390 --> 00:16:10,860 >> Dakle, vidjeli smo u predavanju koje ASCII vrijednost za kapital je 65. 329 00:16:10,860 --> 00:16:13,670 I kapital B će biti 66, i tako dalje. 330 00:16:13,670 --> 00:16:20,860 Tako da doslovno možete koristiti 'A' to znači da je broj 65. 331 00:16:20,860 --> 00:16:24,600 Kao, to je vrijednost 65. 332 00:16:24,600 --> 00:16:30,950 Ja mogu učiniti nešto poput int x = 100 - ''. I sada će imati x vrijednost 333 00:16:30,950 --> 00:16:33,810 100-65. 334 00:16:33,810 --> 00:16:36,708 ALI: Možete pokrenuti da i pokazati da. 335 00:16:36,708 --> 00:16:38,420 Oh, možda i ne. 336 00:16:38,420 --> 00:16:38,600 Ništa za to. 337 00:16:38,600 --> 00:16:40,970 ROB: Morao sam ga ispisati. 338 00:16:40,970 --> 00:16:43,730 ZVUČNIK 10: Kako ste ga vratite karaktera? 339 00:16:43,730 --> 00:16:46,800 ALI: Dakle, ako ste nemojte - 340 00:16:46,800 --> 00:16:51,450 samo prisiliti da bude char, jednako. 341 00:16:51,450 --> 00:16:53,630 ROB: Dakle, tu je - 342 00:16:53,630 --> 00:16:58,440 Razlika između char i cijeli broj je samo u smislu veličine. 343 00:16:58,440 --> 00:17:01,230 Dakle, cijeli se dogoditi da bude u mogućnosti da predstavljaju stvari 344 00:17:01,230 --> 00:17:02,600 da, kao, četiri milijarde. 345 00:17:02,600 --> 00:17:05,839 Char je samo u mogućnosti da predstavljaju stvari do 255. 346 00:17:05,839 --> 00:17:08,390 No, ne postoji razlika između njih osim toga. 347 00:17:08,390 --> 00:17:12,339 Dakle, može se reći char c = 65. 348 00:17:12,339 --> 00:17:24,204 To je ekvivalent govoreći char c iznosi ''. 349 00:17:24,204 --> 00:17:25,210 ALI: Oh, ne. 350 00:17:25,210 --> 00:17:26,710 To zapravo ne spasi stvari. 351 00:17:26,710 --> 00:17:28,130 ROB: Ne, ne mogu to učiniti. 352 00:17:28,130 --> 00:17:31,610 ALI: To je samo - 353 00:17:31,610 --> 00:17:34,920 [Uzdiše] 354 00:17:34,920 --> 00:17:40,700 >> ROB: Ok, pa ono Ali samo napisala je program koji ispisuje prvi 100 - 355 00:17:40,700 --> 00:17:46,290 '' Kao cijeli broj, koji je bio 35, kao što smo očekivali, jer je 100 minus ASCII 356 00:17:46,290 --> 00:17:48,580 vrijednost je 65. 357 00:17:48,580 --> 00:17:54,100 Zatim je ispisati pomoću% C, što znači da ga tumače kao znak. 358 00:17:54,100 --> 00:17:57,050 Dakle, 100 - 35. 359 00:17:57,050 --> 00:18:00,990 Tumačenje da je kao lik se događa da se rasprsne simbol. 360 00:18:00,990 --> 00:18:06,160 Ako pogledate asciitable.com ili bilo što drugo, vidjet ćete da je 35 361 00:18:06,160 --> 00:18:07,410 hash simbol. 362 00:18:09,940 --> 00:18:12,700 ALI: Ok, sve ostale pojašnjenja o problemu? 363 00:18:16,000 --> 00:18:18,180 Ok, vi možete ići naprijed i učiniti ga onda. 364 00:18:18,180 --> 00:18:20,330 Slobodno pitajte pitanja ili međusobno razgovarati. 365 00:18:20,330 --> 00:18:24,390 Ili, ako ste već učinili, možete se opustiti. 366 00:18:24,390 --> 00:18:29,640 >> LUCAS: Jesu li isti razred, sve mala slova u redu i 367 00:18:29,640 --> 00:18:32,923 Također veliko su također u redu, jer to je nešto korisno za 368 00:18:32,923 --> 00:18:33,990 problem. 369 00:18:33,990 --> 00:18:35,620 ALI: Dobro pitanje, Lucas. 370 00:18:35,620 --> 00:18:37,430 Dakle, nije vi sve to? 371 00:18:37,430 --> 00:18:37,640 ZVUČNIK 11: Da. 372 00:18:37,640 --> 00:18:39,535 To je kako to učiniti, zar ne? 373 00:18:39,535 --> 00:18:39,960 ALI: Točno. 374 00:18:39,960 --> 00:18:40,415 ROB: Da. 375 00:18:40,415 --> 00:18:47,270 ZVUČNIK 11: [nečujan] 376 00:18:47,270 --> 00:18:48,330 ALI: U redu. 377 00:18:48,330 --> 00:18:49,350 ROB: Što je pitanje molba? 378 00:18:49,350 --> 00:18:50,590 Samo za pretvaranje - 379 00:18:50,590 --> 00:18:52,560 ALI: Pretvaranje malih slova na velikim slovima. 380 00:18:52,560 --> 00:18:53,100 To je to. 381 00:18:53,100 --> 00:18:54,700 ROB: Ok. 382 00:18:54,700 --> 00:18:56,180 ALI: Ako smo ga pisati? 383 00:18:56,180 --> 00:18:59,340 Valjda ćemo samo gledati na tuđe. 384 00:18:59,340 --> 00:19:07,140 ROB: Dakle, za one koji bi mogli biti zaglavi, način - 385 00:19:07,140 --> 00:19:15,160 ako imam neki char c, a recimo da se dogodi da se slovo D. 386 00:19:15,160 --> 00:19:20,760 Dakle, kako sada mogu shvatiti što slovo abecede C je? 387 00:19:20,760 --> 00:19:25,620 Ne D, ali mislim, D se dogoditi da bude četvrti slovo abecede. 388 00:19:25,620 --> 00:19:28,910 A ako ćemo početi računajući od 0, onda je treći slovo abecede. 389 00:19:28,910 --> 00:19:36,240 Dakle, ako je 0, b je 1, C 2, D je 3, kako mogu shvatiti int položaj - 390 00:19:36,240 --> 00:19:40,780 ono položaj abeceda C u? 391 00:19:40,780 --> 00:19:42,333 Se bilo tko imati bilo koji ideja? 392 00:19:42,333 --> 00:19:45,440 ALI: Mislim da ste svi kodiranja. 393 00:19:45,440 --> 00:19:46,440 ROB: Što o prvoj? 394 00:19:46,440 --> 00:19:48,608 ZVUČNIK 12: Dakle, ono što je, oduzimanje prvo? 395 00:19:48,608 --> 00:19:49,030 ROB: Da. 396 00:19:49,030 --> 00:19:49,950 ALI: Da, strašan. 397 00:19:49,950 --> 00:19:51,765 Tako ste mogli učiniti kapitala D - 398 00:19:51,765 --> 00:19:52,840 oh, oprostite. 399 00:19:52,840 --> 00:19:55,620 Uzmete karakter i oduzimati prvi jedan, kao što je rekao. 400 00:19:55,620 --> 00:20:03,940 ROB: D Dakle, ako je nešto poput 68, i oduzmemo, što je 65, onda smo dobili 401 00:20:03,940 --> 00:20:07,130 3, govore nam da je D treći slovo abecede 402 00:20:07,130 --> 00:20:09,290 počevši od 0. 403 00:20:09,290 --> 00:20:11,310 Dakle, možete koristiti. 404 00:20:11,310 --> 00:20:13,830 Sada znamo što slovo abecede, u smislu 405 00:20:13,830 --> 00:20:16,060 slovima, ili - 406 00:20:16,060 --> 00:20:18,330 smo mogli učiniti istu stvar za malim slovima shvatiti što 407 00:20:18,330 --> 00:20:20,170 kurent poziciju da smo u. 408 00:20:20,170 --> 00:20:25,690 I možemo koristiti da onda pretvoriti u velika slova da koristite 409 00:20:25,690 --> 00:20:26,970 vrlo slična ideja. 410 00:20:31,470 --> 00:20:32,670 Pitajte za prijedloge? 411 00:20:32,670 --> 00:20:35,810 >> ALI: Da li vam dečki - čekati, ne znam koliko ti dečki su. 412 00:20:35,810 --> 00:20:40,060 Jeste većina ste učinili, to još uvijek radi, ste zapeli? 413 00:20:40,060 --> 00:20:42,020 Vi možete kriknuti - 414 00:20:42,020 --> 00:20:42,330 zaglavi. 415 00:20:42,330 --> 00:20:43,210 Jedna osoba je zapeo. 416 00:20:43,210 --> 00:20:43,560 Cool. 417 00:20:43,560 --> 00:20:44,700 I imaju tendenciju da se zaglavi, previše. 418 00:20:44,700 --> 00:20:45,415 ZVUČNIK 13: Ja sam učinio. 419 00:20:45,415 --> 00:20:46,410 ALI: Ti si učinio? 420 00:20:46,410 --> 00:20:47,480 Ok. 421 00:20:47,480 --> 00:20:47,935 Gotovo. 422 00:20:47,935 --> 00:20:49,300 ZVUČNIK 13: [nečujan] 423 00:20:49,300 --> 00:20:50,600 ALI: Da, super. 424 00:20:50,600 --> 00:20:53,720 Jeste li provjeri da je u malim slovom obliku? 425 00:20:53,720 --> 00:20:56,730 Ok, cool. 426 00:20:56,730 --> 00:20:59,882 Gdje su drugi ljudi? 427 00:20:59,882 --> 00:21:06,140 Je li to nagovještaj vam pomoći, kao i za sebe UN-zabada? 428 00:21:06,140 --> 00:21:09,778 ZVUČNIK 14: Ne baš, ali baš zbog toga, ne znam, nisam 429 00:21:09,778 --> 00:21:11,590 to probavljanje još. 430 00:21:11,590 --> 00:21:12,640 ALI: Ok, cool. 431 00:21:12,640 --> 00:21:13,431 Želite li probati - 432 00:21:13,431 --> 00:21:16,140 ili ne želite ići i razgovarati? 433 00:21:16,140 --> 00:21:18,590 >> ROB: Ono što sam htio reći je - 434 00:21:18,590 --> 00:21:19,890 pa koristeći ovaj. 435 00:21:19,890 --> 00:21:22,650 Razumijete li kako smo dobili ono položaj abecede 436 00:21:22,650 --> 00:21:24,820 Pismo je u? 437 00:21:24,820 --> 00:21:30,616 ZVUČNIK 14: Ok, tako da kada se stavi stvari u jednu kotaciju, 438 00:21:30,616 --> 00:21:35,030 koja vraća broj? 439 00:21:35,030 --> 00:21:37,100 ROB: Da. 440 00:21:37,100 --> 00:21:40,840 To će biti preveden na ASCII vrijednost predstavlja. 441 00:21:40,840 --> 00:21:43,350 Dakle, ne želite ići u ASCII tablici ili što god je to? 442 00:21:46,456 --> 00:21:47,840 ALI: Samo jedan od njih? 443 00:21:47,840 --> 00:21:49,970 ROB: Yep. 444 00:21:49,970 --> 00:21:55,270 Dakle, kada ste stavili bilo koji od ovih simbola, ignorirajući puno - 445 00:21:55,270 --> 00:21:56,450 ALI: [nečujan] 446 00:21:56,450 --> 00:21:57,620 ROB: Oh, pomoću pokazivača. 447 00:21:57,620 --> 00:21:58,380 ALI: Da. 448 00:21:58,380 --> 00:21:59,690 To je bilo uzbudljivo. 449 00:21:59,690 --> 00:22:04,050 ROB: Dakle, ignorirajući ove i one na lijevoj strani, koji su posebni simboli - 450 00:22:04,050 --> 00:22:08,520 ako ste stavili bilo koji od tih simbola u jednostruke navodnike, onda će to biti 451 00:22:08,520 --> 00:22:11,620 prevedena na tu vrijednost na lijevoj strani. 452 00:22:11,620 --> 00:22:13,660 ALI: Ovo je decimalni broj za njega. 453 00:22:13,660 --> 00:22:19,710 To je kao utakmica s 65, B do 66, a vi ćete primijetiti da su oni sve u 454 00:22:19,710 --> 00:22:21,540 abecednim redom, koji čini razliku. 455 00:22:21,540 --> 00:22:27,110 Dakle, kao što je Rob kaže, prije, u tom kodu, bili smo računanja udaljenosti od 456 00:22:27,110 --> 00:22:29,610 prvo slovo po sebi. 457 00:22:29,610 --> 00:22:32,820 I to će biti isti, bilo da je to veliko ili malo slovo. 458 00:22:32,820 --> 00:22:38,390 ROB: Dakle, kada smo radili D, 68 minus, 65, dobili smo tri. 459 00:22:38,390 --> 00:22:42,370 Budući da je D tri pozicije u abecedi. 460 00:22:42,370 --> 00:22:46,680 ALI: Pa onda kako bi ti prevesti više naći malo d? 461 00:22:46,680 --> 00:22:47,240 ROB: Da. 462 00:22:47,240 --> 00:22:52,230 Dakle, ako imam tri sada, znam da želim otići tri slova u - 463 00:22:52,230 --> 00:22:54,830 mi se dogoditi da se ide malim slovima sada, ali recimo ja želim ići tri 464 00:22:54,830 --> 00:22:58,610 pozicije u malim slovom strane stvari. 465 00:22:58,610 --> 00:23:01,400 Pa kako to mogu učiniti? 466 00:23:01,400 --> 00:23:04,240 Znam mala slova je 97. 467 00:23:04,240 --> 00:23:07,535 Pa kako ću pronaći tri pozicije u malim slovima? 468 00:23:10,461 --> 00:23:11,934 >> ZVUČNIK 15: Imam jedno pitanje zapravo. 469 00:23:11,934 --> 00:23:12,425 ALI: Da, ići naprijed. 470 00:23:12,425 --> 00:23:14,880 ZVUČNIK 15: Pa za to, to zapravo ne smeta ako znam ovu poziciju, 471 00:23:14,880 --> 00:23:16,360 sviđa, ne trebam ovu tablicu. 472 00:23:16,360 --> 00:23:16,840 ROB: Nope. 473 00:23:16,840 --> 00:23:19,380 Vi nikada nećete morati koristiti bilo koji od tih brojeva. 474 00:23:19,380 --> 00:23:23,670 I to je važna točka u svoje programe koje nikada ne bi trebali naporno 475 00:23:23,670 --> 00:23:25,500 kodirati bilo koji od tih konstanti. 476 00:23:25,500 --> 00:23:31,190 Koristite 'A'. Nikada ne koristite 65 ili 97. 477 00:23:31,190 --> 00:23:34,370 ALI: Oni su pozvani Brojevi, i oni stvarno zbunjujuće. 478 00:23:34,370 --> 00:23:37,080 Kao, kad si ispravljanje pogrešaka kod, možda nećete sjetiti što 479 00:23:37,080 --> 00:23:38,020 ih koristiti za. 480 00:23:38,020 --> 00:23:40,770 I za nas gradiranje svoj kôd, mi stvarno ne će znati što 481 00:23:40,770 --> 00:23:41,750 ti si ih koriste za. 482 00:23:41,750 --> 00:23:44,815 Dakle, to je bolje ako zapravo koristiti znakove tako čini 483 00:23:44,815 --> 00:23:46,065 više osjećaj za ljude. 484 00:23:49,460 --> 00:23:51,160 Ok, sva ostala pitanja? 485 00:23:51,160 --> 00:23:52,975 Jesu više ljudi radi, ili - 486 00:23:56,243 --> 00:23:57,493 Pretpostavljam da možemo provjeriti. 487 00:23:59,870 --> 00:24:02,410 To je stvarno jezivo da možete vidjeti ljudi kod. 488 00:24:02,410 --> 00:24:04,970 ROB: Da. 489 00:24:04,970 --> 00:24:06,410 Mi ne moramo to učiniti ovdje. 490 00:24:06,410 --> 00:24:08,380 Mi ne znamo imena ljudi, bilo. 491 00:24:08,380 --> 00:24:10,940 ALI: Oh yeah, dobro da čini bolje, tako da ćemo biti još nepristran 492 00:24:10,940 --> 00:24:14,820 umjesto da samo slučajno branje nekoga. 493 00:24:14,820 --> 00:24:15,360 Ne brinite. 494 00:24:15,360 --> 00:24:16,265 Neću to učiniti. 495 00:24:16,265 --> 00:24:20,396 Ako imate slučajnih stvari o - Nema veze. 496 00:24:20,396 --> 00:24:20,870 Ok. 497 00:24:20,870 --> 00:24:22,556 Kako su ljudi rade? 498 00:24:22,556 --> 00:24:26,950 >> ZVUČNIK 17: Dakle, deveti redak treba ispisati znak? 499 00:24:26,950 --> 00:24:27,430 ROB: Da. 500 00:24:27,430 --> 00:24:27,910 ALI: Da. 501 00:24:27,910 --> 00:24:30,770 Dakle, ako idete dolje - 502 00:24:30,770 --> 00:24:32,200 ROB: Oh, ne mogu to učiniti. 503 00:24:32,200 --> 00:24:35,400 ALI: Vidjet ćete da je tiskana ljestve simbol. 504 00:24:35,400 --> 00:24:37,180 ZVUČNIK 17: Oh, u redu. 505 00:24:37,180 --> 00:24:41,290 ROB: Valjda drugi način možete gledati na stvari je da smo tiskanje dva 506 00:24:41,290 --> 00:24:42,540 likovi. 507 00:24:44,500 --> 00:24:47,740 Prvi smo ispisa je pismo A. 508 00:24:47,740 --> 00:24:51,610 Sljedeći smo ispisa je samo 65 godina. 509 00:24:51,610 --> 00:24:54,450 Vjerojatno će vikati na mene za to. 510 00:24:54,450 --> 00:25:00,060 Dakle, ako smo samo pokrenuti ovu, primijetit ćete da se ispisuje oba puta. 511 00:25:00,060 --> 00:25:02,070 Zato tražimo to ista stvar. 512 00:25:02,070 --> 00:25:07,840 Mi smo ga pita za ispis slovo A. I onda tražimo da ispis 513 00:25:07,840 --> 00:25:13,820 broj 65 tumačiti kao lik, koji je ista stvar. 514 00:25:13,820 --> 00:25:15,100 ALI: Imate li nešto za reći? 515 00:25:15,100 --> 00:25:18,150 Oh, samo šalio, žao mi je. 516 00:25:18,150 --> 00:25:20,640 U redu, kako su ljudi - 517 00:25:20,640 --> 00:25:22,280 ROB: Možemo samo prošetati kroz nju. 518 00:25:22,280 --> 00:25:25,250 >> ALI: Dobro, pa kako ste počeli? 519 00:25:25,250 --> 00:25:26,500 Svatko? 520 00:25:28,030 --> 00:25:34,486 Kao savjet, moramo dobiti nešto od ljudi, od typers. 521 00:25:34,486 --> 00:25:36,850 ZVUČNIK 18: [nečujan] 522 00:25:36,850 --> 00:25:38,290 ALI: Oh yeah, brz, savršena. 523 00:25:38,290 --> 00:25:40,660 Tako ćemo upisati - 524 00:25:40,660 --> 00:25:41,670 Što ćemo upisati? 525 00:25:41,670 --> 00:25:43,660 Svatko? 526 00:25:43,660 --> 00:25:46,480 Ili bi trebao sam ga upisati? 527 00:25:46,480 --> 00:25:47,530 Jesmo li zapravo piše - 528 00:25:47,530 --> 00:25:48,430 ROB: Naravno. 529 00:25:48,430 --> 00:25:50,990 ALI: Dakle, mi ćemo upišite printf to zatraži, tako da možemo biti 530 00:25:50,990 --> 00:25:54,810 sviđa, daj mi znak. 531 00:25:54,810 --> 00:25:55,710 Dobro, a što onda? 532 00:25:55,710 --> 00:25:56,664 Zašto se to radi? 533 00:25:56,664 --> 00:25:57,620 ROB: Ne znam. 534 00:25:57,620 --> 00:26:00,070 ALI: Ok. 535 00:26:00,070 --> 00:26:03,680 Tako sada, mi smo ih reći da nam daju karakter. 536 00:26:03,680 --> 00:26:07,064 Ali kako onda ste zapravo dobili taj lik? 537 00:26:07,064 --> 00:26:10,060 ZVUČNIK 19: Koristite GetString. 538 00:26:10,060 --> 00:26:12,040 ALI: GetString? 539 00:26:12,040 --> 00:26:12,850 Getchar? 540 00:26:12,850 --> 00:26:17,038 Ok, tako što je razlika između niza i char? 541 00:26:17,038 --> 00:26:20,020 ZVUČNIK 19: Znakovni nizovi su nizovi, kao niz znakova. 542 00:26:20,020 --> 00:26:21,910 >> ALI: Cool, da. 543 00:26:21,910 --> 00:26:25,550 Dakle, u ovom problemu, mi samo treba uzeti u obzir jedan lik u isto vrijeme, tako da 544 00:26:25,550 --> 00:26:28,400 mi samo ćeš učiniti getchar za taj primjer. 545 00:26:28,400 --> 00:26:32,400 ROB: Mogli smo provesti funkciju ako smo htjeli da je cijeli niz 546 00:26:32,400 --> 00:26:35,750 i otišao preko niza i promijenio sve su mala slova u velika slova i sve 547 00:26:35,750 --> 00:26:37,380 velika slova u mala slova. 548 00:26:37,380 --> 00:26:39,170 Ali ovdje, samo smo vas pitati za jedan lik. 549 00:26:39,170 --> 00:26:42,800 ALI: Dakle, sada imamo karakter ovdje, ali onda moramo ga spasiti. 550 00:26:42,800 --> 00:26:45,070 Pa onda ćemo dodati char c - što? 551 00:26:45,070 --> 00:26:46,070 ZVUČNIK 20: Definirajte varijablu. 552 00:26:46,070 --> 00:26:48,100 ALI: Da, točno. 553 00:26:48,100 --> 00:26:49,585 Dakle, imamo karakter. 554 00:26:49,585 --> 00:26:51,766 ROB: Mislim da bi moglo biti - 555 00:26:51,766 --> 00:26:55,630 ti si samo tri mjesta u, što je razlog zašto je vikao na tebe. 556 00:26:55,630 --> 00:27:01,300 >> ALI: Ok, super, sad kad smo tabbing skup, što će se dogoditi sljedeće? 557 00:27:01,300 --> 00:27:02,550 Što je sljedeći korak? 558 00:27:05,590 --> 00:27:08,870 ROB: Što naš program treba učiniti je promijeniti malo slovo na 559 00:27:08,870 --> 00:27:10,130 veliko slovo. 560 00:27:10,130 --> 00:27:15,478 Što ako se dogodi da unesete ljestve simbol? 561 00:27:15,478 --> 00:27:16,314 Je li to - 562 00:27:16,314 --> 00:27:16,732 ALI: To je dobar znak. 563 00:27:16,732 --> 00:27:18,270 Mi koristimo ga puno. 564 00:27:18,270 --> 00:27:21,937 ROB: Je li to vrijedi što mogu pretvoriti u obliku velikih slova? 565 00:27:21,937 --> 00:27:23,070 ZVUČNIK 21: Ne 566 00:27:23,070 --> 00:27:24,070 ALI: Ne 567 00:27:24,070 --> 00:27:24,900 Trebamo provjeriti da. 568 00:27:24,900 --> 00:27:34,950 Dakle, možemo imati ako izjava provjeru pa ako je c veći od 569 00:27:34,950 --> 00:27:37,410 ili jednak malih slova 'a'- 570 00:27:37,410 --> 00:27:45,490 pa ako gledamo grafikon, primijetit ćete da to mora biti između ovdje, 571 00:27:45,490 --> 00:27:47,670 na 97, a malim slovima. 572 00:27:47,670 --> 00:27:52,110 I to može biti bilo koji od ovih, au koracima dokraja. 573 00:27:52,110 --> 00:27:55,200 A onda je tu z na 122. 574 00:27:55,200 --> 00:27:58,215 I to mora pasti između tih dviju vrijednosti. 575 00:27:58,215 --> 00:27:59,700 Ima li to smisla? 576 00:27:59,700 --> 00:28:04,130 ROB: Dakle, ako je c nije između 97 i 122 - 577 00:28:04,130 --> 00:28:09,960 ili nikad ne treba da koriste te brojeve - ako je c ne između 'A' i 578 00:28:09,960 --> 00:28:15,110 'Z', onda to nije bio važeći znak za nas veliko. 579 00:28:15,110 --> 00:28:18,590 ALI: Dakle, u obliku koda, možemo reći da ako je c veći ili jednak jedan 580 00:28:18,590 --> 00:28:19,640 Slučaj mala - 581 00:28:19,640 --> 00:28:21,270 wow, kako ste rekli da? 582 00:28:21,270 --> 00:28:26,900 Ok, veći ili jednak malih slova 'A', i ona mora biti gore 583 00:28:26,900 --> 00:28:32,250 malih slova 'z'. Dakle, to mora biti manji ili jednak mala slova 'Z'. 584 00:28:32,250 --> 00:28:35,300 Mi smo sigurni da je između dva. 585 00:28:35,300 --> 00:28:38,540 Tada možemo nastaviti s našim sretan koda. 586 00:28:41,992 --> 00:28:43,360 Što? 587 00:28:43,360 --> 00:28:46,860 ROB: Tako sam shvatio da bi samo držati molba, ako mi se dogoditi da ne moram 588 00:28:46,860 --> 00:28:48,250 malo slovo. 589 00:28:48,250 --> 00:28:51,130 ALI: Oh, nisam bio svjestan toga. 590 00:28:51,130 --> 00:28:52,820 Oprostite. 591 00:28:52,820 --> 00:28:58,100 >> Ok, pa ako ćemo učiniti kao Rob kaže, i pobrinite se da - 592 00:28:58,100 --> 00:29:02,068 možemo držati ih pita, onda što bismo trebali učiniti? 593 00:29:02,068 --> 00:29:02,994 ZVUČNIK 22: [nečujan] 594 00:29:02,994 --> 00:29:03,530 ROB: Da. 595 00:29:03,530 --> 00:29:05,630 Mi bi trebali koristiti nekakvu petlju. 596 00:29:05,630 --> 00:29:12,900 Budući da korisnik može unijeti nešto nevažeći neispričana iznos puta. 597 00:29:12,900 --> 00:29:14,990 Dakle, možete koristiti petlju dok. 598 00:29:14,990 --> 00:29:18,870 Svrha učiniti-while petlje - 599 00:29:18,870 --> 00:29:21,340 doslovno, jedini put u svom cijeli život ćete ikada koristiti ne- 600 00:29:21,340 --> 00:29:24,780 dok petlje je kada pitate za unos korisnika. 601 00:29:24,780 --> 00:29:28,260 Dakle, činjenica tražimo za unos korisnika ovdje je nagovještaja da bismo trebali 602 00:29:28,260 --> 00:29:29,660 koristiti do-while petlja. 603 00:29:29,660 --> 00:29:30,780 A zašto je to? 604 00:29:30,780 --> 00:29:34,270 Jer to-while petlja se uvijek dogodi barem jednom. 605 00:29:34,270 --> 00:29:40,260 Dakle, kada ste molba za unos korisnika, želite da se to dogodi barem jednom. 606 00:29:40,260 --> 00:29:42,750 A onda, ako se stvari bili uspješni, možete zadržati ide. 607 00:29:42,750 --> 00:29:45,130 Ako ne, vratite se i ponovno pitati. 608 00:29:45,130 --> 00:29:48,950 >> ALI: Dakle, drugim riječima, moramo napraviti rez. 609 00:29:48,950 --> 00:29:51,130 I tako je to to govori nešto učiniti. 610 00:29:51,130 --> 00:29:53,890 Dakle printf - 611 00:29:53,890 --> 00:29:57,490 ispis priopćenju, brz, i dobiti karakter ili pokušaj 612 00:29:57,490 --> 00:29:58,780 dobiti karakter. 613 00:29:58,780 --> 00:30:03,410 I onda moramo provjeriti je li to zapravo to učinio ispravno. 614 00:30:03,410 --> 00:30:07,730 Dakle, tada dodamo uvjete, onda ćemo reći, a, a onda moramo 615 00:30:07,730 --> 00:30:08,980 uvjetna naredba. 616 00:30:11,600 --> 00:30:14,730 ROB: Ali sada smo preinačio misao. 617 00:30:14,730 --> 00:30:18,940 Sada smo prvotno su govorili, ako je c u tom rasponu, to vrijedi. 618 00:30:18,940 --> 00:30:23,340 Sada želimo da preokrenu da i reći ako je c nije u tom rasponu, tada smo 619 00:30:23,340 --> 00:30:25,020 morati vratiti raditi stvari opet. 620 00:30:25,020 --> 00:30:25,900 ALI: Oh, da. 621 00:30:25,900 --> 00:30:31,720 ROB: Dakle, dok to nije istina, želimo se vratiti i 622 00:30:31,720 --> 00:30:34,470 pitati za drugog lika. 623 00:30:34,470 --> 00:30:36,880 Da li su svi vidjeli da? 624 00:30:36,880 --> 00:30:38,830 Pitanja o tome? 625 00:30:38,830 --> 00:30:39,400 Ok. 626 00:30:39,400 --> 00:30:43,480 >> Tako sada imamo valjanu karakter da možemo velika slova. 627 00:30:43,480 --> 00:30:47,150 ALI: Pa što onda sljedeći korak za to uppercasing? 628 00:30:49,994 --> 00:30:51,890 ZVUČNIK 23: Dodaj 32. 629 00:30:51,890 --> 00:30:52,600 ALI: Možete dodati - 630 00:30:52,600 --> 00:30:54,150 Oprosti, što? 631 00:30:54,150 --> 00:30:56,580 ZVUČNIK 23: Ne može se samo dodati 32? 632 00:30:56,580 --> 00:31:02,360 ROB: Pa da, ne u smislu magičnih brojeva. 633 00:31:02,360 --> 00:31:04,610 Vi samo treba koristiti jednom citat stvari. 634 00:31:04,610 --> 00:31:06,450 ZVUČNIK 23: Dobro, dobro - 635 00:31:06,450 --> 00:31:07,250 Rob: Ali možete dobiti 32 - 636 00:31:07,250 --> 00:31:11,870 ALI: Kako ste dobili broj 32, pretpostavljam, je ono što mi govoriš. 637 00:31:11,870 --> 00:31:18,060 ZVUČNIK 23: [nečujan] 638 00:31:18,060 --> 00:31:22,158 Rob: Dakle, možemo doći do broja 32 zajedno - 639 00:31:22,158 --> 00:31:24,468 ZVUČNIK 23: [nečujan]? 640 00:31:24,468 --> 00:31:24,930 ROB: Da. 641 00:31:24,930 --> 00:31:28,540 Ali ako ćemo to učiniti u dva koraka smo učinili prije nego što s 642 00:31:28,540 --> 00:31:29,950 položaj stvari. 643 00:31:29,950 --> 00:31:36,910 Dakle, položaj u pismu da je c dogoditi da se je c minus mala 644 00:31:36,910 --> 00:31:42,360 "'. Dakle, ako smo unijeli malo slovo 'd', stav će biti tri. 645 00:31:42,360 --> 00:31:46,490 A sada želimo da se stvari do velikih slova raspon stvari. 646 00:31:46,490 --> 00:31:55,376 Dakle, sada naš novi c će biti glavni grad '' plus položaj. 647 00:31:55,376 --> 00:32:00,090 Dakle, ljudi vide kako to nas dovodi - 648 00:32:00,090 --> 00:32:04,140 krećemo od malih slova raspona, točno dubina smo bili u to 649 00:32:04,140 --> 00:32:07,650 Raspon, i ide dolje u rasponu velikih slova, i ide tako daleko 650 00:32:07,650 --> 00:32:10,610 u nju opet, što će biti isti lik, ali sada 651 00:32:10,610 --> 00:32:12,550 uppercased. 652 00:32:12,550 --> 00:32:16,490 ALI: I za ljude koji su bili zbunjeni kako je on samo rekao 32, 653 00:32:16,490 --> 00:32:20,390 osnovi on u kombinaciji obje ove u jednom izvještaju. 654 00:32:20,390 --> 00:32:24,550 Dakle, ekvivalent način pisanja to reći možete samo vrsta 655 00:32:24,550 --> 00:32:28,190 zamjena pozicija, c minus ',' i staviti ga ovdje. 656 00:32:28,190 --> 00:32:31,330 Dakle, ono što je učinio, sam nemojte - 657 00:32:31,330 --> 00:32:44,510 char newc = velikih '' plus c minus mala slova 'a'. I zbog algebre, 658 00:32:44,510 --> 00:32:47,090 možete ih kretati. 659 00:32:47,090 --> 00:32:52,960 Također se može reći da ga možete kretati tako char newc = velikih '' 660 00:32:52,960 --> 00:32:55,620 minus mala slova 'A' plus c. 661 00:32:55,620 --> 00:32:58,650 I to, primijetit ćete da se vratimo na grafikonu. 662 00:33:01,160 --> 00:33:06,300 Imamo velika slova je 65, a mala slova je 97. 663 00:33:06,300 --> 00:33:09,800 Dakle 65-97 je -32. 664 00:33:09,800 --> 00:33:10,020 >> Bok. 665 00:33:10,020 --> 00:33:10,930 Sjesti. 666 00:33:10,930 --> 00:33:12,180 Oh. 667 00:33:16,240 --> 00:33:17,980 Možete sjediti ovdje. 668 00:33:17,980 --> 00:33:20,805 Cool, ok, super. 669 00:33:20,805 --> 00:33:22,390 Dobrodošli na dijelu. 670 00:33:22,390 --> 00:33:25,110 Primijetit ćete da je razlika 32. 671 00:33:25,110 --> 00:33:28,150 Dakle, to je mjesto gdje je dobio taj broj. 672 00:33:28,150 --> 00:33:32,140 No, to nije, kao što je Rob kaže, najbolji način da to učinite, jer ima čudno 673 00:33:32,140 --> 00:33:35,260 magični broj zbunjenost. 674 00:33:35,260 --> 00:33:38,710 ROB: Trebali biste koristiti kapital minus mala slova. 675 00:33:38,710 --> 00:33:43,045 Vi ne bi trebali koristiti samo ravno 32. 676 00:33:43,045 --> 00:33:45,020 ZVUČNIK 24: Zašto je to tako, opet? 677 00:33:45,020 --> 00:33:49,860 Zašto ne bi trebao koristiti 32? 678 00:33:49,860 --> 00:33:55,630 ALI: Ako smo to učinili, to će biti char newc = -32 + c. 679 00:33:55,630 --> 00:34:00,030 A ako ne vidjeti bilo koji od ostatka tome, ako je to sve je nestalo, a vi 680 00:34:00,030 --> 00:34:04,720 samo vidjeti ovu jednu liniju, kako onda znaš što negativno 32? 681 00:34:04,720 --> 00:34:07,000 To je samo izvan mjesta. 682 00:34:07,000 --> 00:34:10,360 ROB: Dakle, vaš program će raditi sasvim u redu. 683 00:34:10,360 --> 00:34:12,960 To je samo stil stvar. 684 00:34:12,960 --> 00:34:17,760 Netko ide i čitanje koda, oni su kao što to znači 32? 685 00:34:17,760 --> 00:34:18,889 Možda nemojte - 686 00:34:18,889 --> 00:34:22,090 Ja vjerojatno ne bi odmah shvatili da 32 se dogodi da se 687 00:34:22,090 --> 00:34:25,100 Razlika između malo slovo i veliko slovo, iako 688 00:34:25,100 --> 00:34:26,510 idemo koristiti tu činjenicu u sljedećem problemu. 689 00:34:30,210 --> 00:34:31,610 32 - 690 00:34:31,610 --> 00:34:38,579 mogli ostaviti komentar iznad je rekao 32 je razlika između 691 00:34:38,579 --> 00:34:45,290 "A" i "." No, u tom trenutku, zašto ne samo koristiti 'A' i 'A', a vi 692 00:34:45,290 --> 00:34:47,469 ne treba komentar tada. 693 00:34:47,469 --> 00:34:52,739 >> ALI: To je samo načini iznad njega su puno čistije, stil-mudar. 694 00:34:52,739 --> 00:34:54,590 I tako, budući da ste tek počinje programiranje - 695 00:34:54,590 --> 00:34:57,775 ili valjda ne, jer ti si haker edi - nije bitno. 696 00:34:57,775 --> 00:34:59,420 To je samo dobar način da se - 697 00:34:59,420 --> 00:35:01,230 to je bolje imati bolji stil. 698 00:35:01,230 --> 00:35:02,850 To je lakše za druge ljude da čitaju. 699 00:35:02,850 --> 00:35:06,560 ROB: Vi nikada ne treba da zapamtite ASCII tablicu, ikad. 700 00:35:06,560 --> 00:35:09,505 Vi samo treba biti u mogućnosti koristiti jednu citat znakove. 701 00:35:12,390 --> 00:35:12,730 Pitanja? 702 00:35:12,730 --> 00:35:13,980 ALI: Svatko dobro? 703 00:35:16,020 --> 00:35:16,430 ROB: Ok. 704 00:35:16,430 --> 00:35:23,320 Dakle, sljedeći problem je bitan. 705 00:35:23,320 --> 00:35:24,660 Dakle, sljedeći problem nas pita - 706 00:35:27,880 --> 00:35:31,570 ALI: Sljedeći problem je molba za nas učiniti istu stvar, ali za korištenje 707 00:35:31,570 --> 00:35:32,640 bitovni operatori. 708 00:35:32,640 --> 00:35:35,170 ROB: I naravno, nismo vidjeli bitovni operatori ipak. 709 00:35:35,170 --> 00:35:38,874 Tako smo sada ćemo raspravljati o onima. 710 00:35:38,874 --> 00:35:39,540 ALI: Budite uzbuđeni. 711 00:35:39,540 --> 00:35:41,490 Oni su super zabavno. 712 00:35:41,490 --> 00:35:47,927 >> ROB: Dakle, redovni operateri, poput x plus y, minus, puta, podijelite. 713 00:35:47,927 --> 00:35:50,850 ALI: upišite ga u ovaj redak. 714 00:35:50,850 --> 00:35:55,420 Rob: Tu je i%, ako niste vidjeli, koje možete koristiti po 715 00:35:55,420 --> 00:35:57,130 posto simbol. 716 00:35:57,130 --> 00:35:59,090 No, nećemo koristiti onima za ovaj problem. 717 00:35:59,090 --> 00:36:01,400 Želimo iskoristiti bitovni operatori. 718 00:36:01,400 --> 00:36:06,250 Sada zapamtite, mi ga doveo u predavanju jednog. 719 00:36:06,250 --> 00:36:10,760 Nisam siguran da li smo razgovarali binarni izvan toga. 720 00:36:10,760 --> 00:36:13,710 No, sjetite se da svaki broj predstavlja - 721 00:36:13,710 --> 00:36:14,540 dobro, sve - 722 00:36:14,540 --> 00:36:17,860 je zastupljen u 1s i 0s u binarnom. 723 00:36:17,860 --> 00:36:27,320 Dakle, to znači da kad kažem broj 8, ja znam da je to 724 00:36:27,320 --> 00:36:30,240 kao, 1000. 725 00:36:30,240 --> 00:36:35,530 Što bitovni operatori činimo je raditi na tim bita - 726 00:36:35,530 --> 00:36:37,000 je raditi na tim bita izravno. 727 00:36:40,160 --> 00:36:42,490 Sada sam više ne bave u smislu osam. 728 00:36:42,490 --> 00:36:45,930 Bavim u smislu 1.000, a ja želim raditi stvari s onima 729 00:36:45,930 --> 00:36:47,670 pojedinačnih bitova. 730 00:36:47,670 --> 00:36:52,520 Dakle, Alija je napisao bitovni operatori ovdje, ali that's - 731 00:36:55,060 --> 00:36:58,020 Broj 8 ćemo koristiti kao jedan od naših npr. brojeva. 732 00:36:58,020 --> 00:37:02,980 I binarni prikaz je 1000. 733 00:37:02,980 --> 00:37:06,520 Mi ćemo koristiti neki drugi broj, 5 - 734 00:37:06,520 --> 00:37:12,070 zapravo ajmo koristiti devet i pet. 735 00:37:12,070 --> 00:37:15,778 I u pet je binarni prikaz je 00 - 736 00:37:15,778 --> 00:37:18,380 0101. 737 00:37:18,380 --> 00:37:19,480 ALI: Jesu li svi dobro na to? 738 00:37:19,480 --> 00:37:21,040 Binarni stvari? 739 00:37:21,040 --> 00:37:23,740 To je bio od prvog predavanja? 740 00:37:23,740 --> 00:37:29,070 >> ROB: Dakle, čak i ako nisu u potpunosti na vrhu kako pretvoriti stvari 741 00:37:29,070 --> 00:37:31,700 binarni, to nije sasvim važno za ovaj problem. 742 00:37:31,700 --> 00:37:36,560 Mi ćemo biti koristeći ga, ali ćete imati mnogo više šanse da shvatiti kako 743 00:37:36,560 --> 00:37:39,250 brzo okrenuti stvari u binarnom. 744 00:37:39,250 --> 00:37:43,820 Dakle, pomoću devet i pet, a sada imamo bitovni operatori. 745 00:37:43,820 --> 00:37:48,620 Oh, i također, 9 i 5, ako je cijeli broj, a zatim stvarno je 32 bita, 746 00:37:48,620 --> 00:37:53,150 što znači da smo kao 0, 0, 0, 0 puno puta, a zatim 747 00:37:53,150 --> 00:37:55,330 101 na samom kraju. 748 00:37:55,330 --> 00:37:58,530 To je samo zato, bez obzira na to što radite, u integers, 32 bita. 749 00:37:58,530 --> 00:38:01,570 Samo zato trebamo samo četiri bita predstavljaju devet ne znači da nismo 750 00:38:01,570 --> 00:38:05,500 koristeći se druge 27 bita za samo 0s. 751 00:38:05,500 --> 00:38:10,110 ALI: Samo da pojasnimo, jedan od tih brojeva koji je 0 ili 1 je malo. 752 00:38:10,110 --> 00:38:11,830 Ovo je jedna 4 bita. 753 00:38:11,830 --> 00:38:14,320 Kao tako Rob je rekao da strojevi pohraniti ih u 32. 754 00:38:14,320 --> 00:38:19,430 Pa onda oni će morati 32 od bilo 0 ili 1. 755 00:38:19,430 --> 00:38:22,190 Cool? 756 00:38:22,190 --> 00:38:23,610 ROB: bitovni operatori. 757 00:38:23,610 --> 00:38:27,310 Prvi je da ćemo se baviti, ajmo raditi &. 758 00:38:27,310 --> 00:38:31,260 Dakle, ako mi 9 i 5. 759 00:38:31,260 --> 00:38:38,310 Dakle, ono što i čini se, malo po malo, to uspoređuje bitova dvaju brojeva 760 00:38:38,310 --> 00:38:44,860 a ako obje brojevima 1, onda će se vratiti jednom. 761 00:38:44,860 --> 00:38:50,870 Ako je a 0, a drugi je 1, ili oba su 0s, onda vraća 0. 762 00:38:50,870 --> 00:38:53,060 Dakle, možete misliti o njemu kao svoje logičke ands. 763 00:38:53,060 --> 00:38:59,270 Kao što trebate istina i istina da se vrate istina, ali istinito i lažno lažno. 764 00:38:59,270 --> 00:39:02,390 Dakle, to je ista stvar, ali sada imamo posla s njim sa samo bita. 765 00:39:02,390 --> 00:39:04,910 >> ALI: Dakle, ako pogledate ovo, imat ćete jedan - 766 00:39:04,910 --> 00:39:08,490 ćete ih redati, tako da će biti 1 i 0. 767 00:39:08,490 --> 00:39:11,036 Da li vi mislite da će biti - što bi to vrednovati na? 768 00:39:11,036 --> 00:39:11,770 ZVUČNIK 25: 1. 769 00:39:11,770 --> 00:39:12,270 ALI: Cool. 770 00:39:12,270 --> 00:39:16,850 Ili ne. 771 00:39:16,850 --> 00:39:18,830 Oprostite. 772 00:39:18,830 --> 00:39:21,290 Dakle, to ima smisla? 773 00:39:21,290 --> 00:39:23,200 Dakle, ono što je kolektivni odgovor opet? 774 00:39:23,200 --> 00:39:24,750 Oprostite. 775 00:39:24,750 --> 00:39:27,530 Dakle, ako imamo jednog i 0, onda ono što ste dobili? 776 00:39:27,530 --> 00:39:30,260 ROB: Dakle, mislite kako ste rekli i glasno. 777 00:39:30,260 --> 00:39:37,550 Ako imate dva bita, x i y, morate x i y biti jedan kako bi za njega 778 00:39:37,550 --> 00:39:40,770 ocijeniti do istinito - ili, kako bi za to da se ocijeniti do jedne. 779 00:39:40,770 --> 00:39:45,650 Ako x ili y 0, onda se procjenjuje na lažne ili 0. 780 00:39:45,650 --> 00:39:49,165 LUCAS: Lijepo je sjetiti se i da je jedan je istina i 0 je lažna. 781 00:39:49,165 --> 00:39:51,684 Dakle, ako imate pravi i lažni, to je laž. 782 00:39:51,684 --> 00:39:53,570 Ali onda, istina i istina, istina. 783 00:39:53,570 --> 00:39:55,040 Lažna & lažna, lažna. 784 00:39:55,040 --> 00:39:57,650 ALI: Imamo istina i laž. 785 00:39:57,650 --> 00:39:58,530 Dakle, 1 i 0. 786 00:39:58,530 --> 00:40:00,380 Pa onda opet, žao mi je, još jednom? 787 00:40:00,380 --> 00:40:02,210 ZVUČNIK 25: To će biti 0. 788 00:40:02,210 --> 00:40:03,560 Da, super. 789 00:40:03,560 --> 00:40:05,400 I onda imamo 0 & 1 - 790 00:40:05,400 --> 00:40:06,260 ZVUČNIK 25: [nečujan] 791 00:40:06,260 --> 00:40:06,680 ALI: Da. 792 00:40:06,680 --> 00:40:09,790 Dakle, uvijek možete ih zamijeniti u - 793 00:40:09,790 --> 00:40:12,150 Onda, ako imate 0 i 0? 794 00:40:12,150 --> 00:40:12,618 ZVUČNIK 4: 1? 795 00:40:12,618 --> 00:40:14,490 0? 796 00:40:14,490 --> 00:40:16,230 ROB: Dakle, to je 0. 797 00:40:16,230 --> 00:40:18,870 To ne znači da su oba brojevi moraju biti isti. 798 00:40:18,870 --> 00:40:22,030 To je da su oba brojevi trebaju biti jedna. 799 00:40:22,030 --> 00:40:26,150 ALI: Dakle, oboje moraju biti istinita za to da bi bilo istinito. 800 00:40:26,150 --> 00:40:26,950 Tako da je 0. 801 00:40:26,950 --> 00:40:30,540 I onda imate 1% 1, što je? 802 00:40:30,540 --> 00:40:32,640 ROB: To su prilično dobri brojevi. 803 00:40:32,640 --> 00:40:34,362 Oni imaju sve moguće - 804 00:40:34,362 --> 00:40:36,210 ALI: Dobar posao, vau. 805 00:40:36,210 --> 00:40:37,080 Ok, cool. 806 00:40:37,080 --> 00:40:39,220 Dakle, nema smisla da svima? 807 00:40:39,220 --> 00:40:41,770 >> ROB: Dakle, sada ćemo napraviti |. 808 00:40:41,770 --> 00:40:51,650 I to će biti vrlo slična, ali sada umjesto x i y trebaju 809 00:40:51,650 --> 00:40:54,880 biti jedan kako bi za to ocijeniti do jednog, sada je samo x ili 810 00:40:54,880 --> 00:40:56,360 y treba biti 1. 811 00:40:56,360 --> 00:40:59,580 ALI: Dakle 1 | 0 ocjenjuje da - 812 00:40:59,580 --> 00:41:00,270 Klasa: 1. 813 00:41:00,270 --> 00:41:01,690 ALI: Cool. 814 00:41:01,690 --> 00:41:03,710 0 | 1 ocjenjuje da - 815 00:41:03,710 --> 00:41:04,420 Klasa: 1. 816 00:41:04,420 --> 00:41:06,726 ALI: Cool, a zatim 0 | 0 - 817 00:41:06,726 --> 00:41:07,600 KLASA: 0. 818 00:41:07,600 --> 00:41:09,320 ALI: Da, a zatim 1 | 1 - 819 00:41:09,320 --> 00:41:10,180 Klasa: 1. 820 00:41:10,180 --> 00:41:12,090 ALI: Cool. 821 00:41:12,090 --> 00:41:14,060 Dakle, to je kao dva bitovni operatera. 822 00:41:14,060 --> 00:41:15,430 Strašan. 823 00:41:15,430 --> 00:41:16,440 ROB: Dakle, sada ćemo napraviti ^. 824 00:41:16,440 --> 00:41:18,470 ALI: Trebamo učiniti sve od njih? 825 00:41:18,470 --> 00:41:20,620 ROB: Da, jer mislim da ćemo ga koristiti - 826 00:41:20,620 --> 00:41:22,340 koristite ih sve. 827 00:41:22,340 --> 00:41:23,150 ALI: Ok. 828 00:41:23,150 --> 00:41:23,570 Dakle - 829 00:41:23,570 --> 00:41:25,540 ROB: Pretpostavljam da mi ne trebaju. 830 00:41:25,540 --> 00:41:31,830 ALI: Pa ^ djela u koje morate imati točno jedan pravi i jedna lažna. 831 00:41:31,830 --> 00:41:34,330 ^ Znači isključivo ILI. 832 00:41:34,330 --> 00:41:36,650 Dakle, sada to nije - 833 00:41:36,650 --> 00:41:41,220 ako su xiy oboje jednom, to je sada lažna. 834 00:41:41,220 --> 00:41:46,920 To je razlika između ^ a |, je da ILI, možete imati, ako je x 835 00:41:46,920 --> 00:41:49,440 Istina ili y je istina, onda smo dobri. 836 00:41:49,440 --> 00:41:55,176 Ne, ^ kaže da ako je x istinit, y mora biti lažna, inače to nije istina. 837 00:41:55,176 --> 00:41:56,814 Imate li pitanje? 838 00:41:56,814 --> 00:42:00,526 >> ZVUČNIK 26: [nečujan] 839 00:42:00,526 --> 00:42:00,990 ALI: Da. 840 00:42:00,990 --> 00:42:01,830 To je vrsta slična. 841 00:42:01,830 --> 00:42:07,320 ROB: Da, pa kad dođete do tog low-level hardvera stvari, to su 842 00:42:07,320 --> 00:42:10,870 vrste operacija ste se bave. 843 00:42:10,870 --> 00:42:13,200 Na razini sklopovlja, samo će se baviti bita. 844 00:42:13,200 --> 00:42:14,950 Vi ne bave brojkama. 845 00:42:18,030 --> 00:42:23,502 ALI: Ok, za ^, ili ako imate jedan ^ 0, što to treba procijeniti da? 846 00:42:23,502 --> 00:42:24,840 Klasa: 1. 847 00:42:24,840 --> 00:42:25,480 ALI: Cool. 848 00:42:25,480 --> 00:42:26,010 Ako imate 849 00:42:26,010 --> 00:42:28,370 0 ^ 1? Klasa: 1. 850 00:42:28,370 --> 00:42:29,490 ALI: Cool. 851 00:42:29,490 --> 00:42:32,050 0 ^ 0? 852 00:42:32,050 --> 00:42:32,470 Cool. 853 00:42:32,470 --> 00:42:33,460 A onda jednog ^ 1? 854 00:42:33,460 --> 00:42:35,050 KLASA: 0. 855 00:42:35,050 --> 00:42:37,710 ALI: Cool, strašan. 856 00:42:37,710 --> 00:42:38,620 Sljedeći - 857 00:42:38,620 --> 00:42:40,520 ROB: Mislim da su to svi moramo baviti. 858 00:42:40,520 --> 00:42:41,490 Samo ćemo učiniti to. 859 00:42:41,490 --> 00:42:43,242 ALI: Jedini put ćemo morati učiniti - 860 00:42:43,242 --> 00:42:44,912 ROB: Oh, to će biti za zadnji problema. 861 00:42:44,912 --> 00:42:47,070 ZVUČNIK 27: Čekaj, opet? 862 00:42:47,070 --> 00:42:47,940 ALI: Nažalost, ono što je vaše pitanje? 863 00:42:47,940 --> 00:42:49,564 >> ZVUČNIK 27: Možete li objasniti da opet? 864 00:42:49,564 --> 00:42:50,100 ^? 865 00:42:50,100 --> 00:42:51,490 ZVUČNIK 27: Exclus - da. 866 00:42:51,490 --> 00:42:55,800 ALI: Pa što isključivo ILI znači da mora postojati isključivo 867 00:42:55,800 --> 00:43:02,970 jedan pravi i jedan lažni, pa se jedan i jedan 0, nasuprot s ILI, možete imati - 868 00:43:02,970 --> 00:43:06,170 jedan od njih mora biti istina, ili oboje može biti istina, za njega 869 00:43:06,170 --> 00:43:07,130 ocijeniti do istinito. 870 00:43:07,130 --> 00:43:10,030 ZVUČNIK 27: Dakle 0 i 0 će biti lažni. 871 00:43:10,030 --> 00:43:10,450 ALI: Da. 872 00:43:10,450 --> 00:43:11,780 No, ako imate jedan | 873 00:43:11,780 --> 00:43:14,290 1, da bi se ocijeniti da istina. 874 00:43:14,290 --> 00:43:18,210 No, ako imate jedan ^ 1, kao što smo učinili, koji se procjenjuje na false. 875 00:43:18,210 --> 00:43:21,220 Budući da to nije isključivo jedna je istina. 876 00:43:21,220 --> 00:43:26,930 ROB: I to se može ili ne može biti od pomoći, ali primijetiti da ^ je 877 00:43:26,930 --> 00:43:28,890 jednaka samo uzimanje | 878 00:43:28,890 --> 00:43:30,290 minus &. 879 00:43:30,290 --> 00:43:32,250 A zapravo možete misliti o tome na ovaj način. 880 00:43:32,250 --> 00:43:37,290 ^ Samo ORing sve zajedno, ali iznošenje bilo bitova gdje 881 00:43:37,290 --> 00:43:38,610 oboje su bili pravi. 882 00:43:38,610 --> 00:43:41,620 Tako i vraća sve gdje su i bile istinite. 883 00:43:41,620 --> 00:43:45,850 | Vraća sve gdje jedan ili oba bili pravi. 884 00:43:45,850 --> 00:43:51,050 Dakle oduzimanjem da iz | vam daje ^. 885 00:43:51,050 --> 00:43:52,040 ALI: Ima li pitanja? 886 00:43:52,040 --> 00:43:53,290 To je puno informacija. 887 00:43:55,980 --> 00:43:57,510 Svatko dobro? 888 00:43:57,510 --> 00:44:00,360 >> ROB: Možemo ići preko sljedećih one za sljedeću problema, slash 889 00:44:00,360 --> 00:44:01,680 koliko je sati? 890 00:44:01,680 --> 00:44:04,010 Oni ne trebaju to do sljedećeg problema. 891 00:44:04,010 --> 00:44:07,830 ALI: Mislio sam da je ovo jedan. 892 00:44:07,830 --> 00:44:08,830 ROB: Nije. 893 00:44:08,830 --> 00:44:10,085 ALI: Jeste li sigurni? 894 00:44:10,085 --> 00:44:11,300 ROB: Da, ja sam pozitivna. 895 00:44:11,300 --> 00:44:12,970 ALI: Zašto ne bismo početi raditi sljedeći problem? 896 00:44:15,710 --> 00:44:19,790 Problem je, opet, kako bi ga promijeniti iz kurent u velika slova, a to 897 00:44:19,790 --> 00:44:21,720 Vrijeme je da iskoristimo bitovni operatori. 898 00:44:21,720 --> 00:44:22,970 ROB: Dakle, hoćemo - 899 00:44:25,290 --> 00:44:29,670 počnimo s binarnom reprezentacije '', kapital '', 900 00:44:29,670 --> 00:44:31,750 što je 65. 901 00:44:31,750 --> 00:44:36,150 Tako je u binarno - 902 00:44:39,960 --> 00:44:47,900 tako 'A' = 65, koji =, u binarnom - 903 00:44:47,900 --> 00:44:51,380 Idem nered gore broju 0s - da. 904 00:44:51,380 --> 00:44:53,670 ALI: Znači li to smisla svima? 905 00:44:53,670 --> 00:44:57,620 Dakle, jedan, nema 2s, ne 4s, ne 8s, ne - 906 00:45:00,238 --> 00:45:07,075 Nema 16s, ne 32S, a zatim je jedan 64. 907 00:45:07,075 --> 00:45:08,685 ROB: Da, mislim da je to jedan previše 0s. 908 00:45:08,685 --> 00:45:09,600 ALI: Žao mi je. 909 00:45:09,600 --> 00:45:13,410 >> ROB: Ok, tako da imamo 64 set, a imamo jedan set, a kombiniranjem onih 910 00:45:13,410 --> 00:45:16,030 zajedno, dobili smo 65. 911 00:45:16,030 --> 00:45:17,470 ALI: Cool grah? 912 00:45:17,470 --> 00:45:19,640 ROB: Pa sad, mala slova 'a'- 913 00:45:22,220 --> 00:45:24,260 Primijetit 97 - 914 00:45:24,260 --> 00:45:26,370 Koja je razlika između 97 i 65? 915 00:45:26,370 --> 00:45:27,530 ZVUČNIK 28: 32. 916 00:45:27,530 --> 00:45:28,130 ROB: Da. 917 00:45:28,130 --> 00:45:35,920 Dakle, to je 32, koji je vlastiti malo, tako da će biti 110.001. 918 00:45:35,920 --> 00:45:41,200 I to će biti istina za sve moguće likove. 919 00:45:41,200 --> 00:45:49,800 Dakle, ako mislimo 'D', što će biti 68, koji će biti 1.000.011. 920 00:45:49,800 --> 00:45:56,310 A zatim mala "d" će biti 68 plus 32, što je 100, što je 921 00:45:56,310 --> 00:46:00,010 će biti ista stvar da je to bio, samo flipping 922 00:46:00,010 --> 00:46:04,300 32 opet, tako 1100011. 923 00:46:04,300 --> 00:46:08,610 Dakle, razlika između malih i velikih slova samo flipping 924 00:46:08,610 --> 00:46:10,170 da 32-bitni položaj. 925 00:46:10,170 --> 00:46:17,670 ZVUČNIK 29: Nije li to 1.000.100? 926 00:46:17,670 --> 00:46:19,670 ROB: Čekaj, to je 100 - 927 00:46:19,670 --> 00:46:20,480 nešto što sam učinio krivo. 928 00:46:20,480 --> 00:46:21,730 To nije bila istina. 929 00:46:28,710 --> 00:46:31,150 Razmišljao sam da je razlika od tri, pa onda sam zapeo 930 00:46:31,150 --> 00:46:33,970 binarni 3 na kraju. 931 00:46:33,970 --> 00:46:36,710 Ovo bi trebao biti u pravu. 932 00:46:36,710 --> 00:46:37,150 ALI: Hvala. 933 00:46:37,150 --> 00:46:38,080 Dobro za ukazujući da je van. 934 00:46:38,080 --> 00:46:40,320 To je bio oštar. 935 00:46:40,320 --> 00:46:43,450 U redu, da je jasno da ljudi? 936 00:46:43,450 --> 00:46:45,700 >> ROB: Razlika između velikih i malih verzije 937 00:46:45,700 --> 00:46:49,250 uvijek samo će biti 32, i tako će uvijek biti jedna bitna 938 00:46:49,250 --> 00:46:51,840 koji treba biti zrcaljeno promijeniti između dva. 939 00:46:51,840 --> 00:46:54,330 ALI: Dakle, u tom slučaju, znajući razliku između kapitala i A 940 00:46:54,330 --> 00:46:57,130 mala je dobra stvar. 941 00:46:57,130 --> 00:47:01,950 Ne u kodu, ali konceptualno najmanje, to je dobro. 942 00:47:01,950 --> 00:47:05,880 Dakle, vi možete ići naprijed i kod koje se u Spaces sada. 943 00:47:05,880 --> 00:47:08,580 Ili treba mi samo o tome razgovarati? 944 00:47:08,580 --> 00:47:09,760 ROB: Mi samo možemo o tome razgovarati. 945 00:47:09,760 --> 00:47:10,680 Ne znam. 946 00:47:10,680 --> 00:47:11,680 Vi možete pokušati. 947 00:47:11,680 --> 00:47:13,560 Razgovarajte među sobom za malo. 948 00:47:13,560 --> 00:47:16,390 Mi ćemo vam dati priliku da ga koda. 949 00:47:16,390 --> 00:47:17,640 [Pridodati glasovima] 950 00:47:19,785 --> 00:47:22,695 ALI: - je cool 951 00:47:22,695 --> 00:47:26,590 ZVUČNIK 30: To je poput hakerskog komedije. 952 00:47:26,590 --> 00:47:31,060 ALI: Da, mi smo samo govori vijest, prolazi kroz nju. 953 00:47:31,060 --> 00:47:32,310 >> Rob: I vratili smo se. 954 00:47:34,950 --> 00:47:35,405 ALI: To je vrsta čudno. 955 00:47:35,405 --> 00:47:38,720 Osjećam se kao da smo trebali imati CS50 vijesti stanicu, a mi bi 956 00:47:38,720 --> 00:47:41,500 zapravo sjediti ovako. 957 00:47:41,500 --> 00:47:43,500 ROB: Hacker News. 958 00:47:43,500 --> 00:47:46,848 ALI: Hacker News 50. 959 00:47:46,848 --> 00:47:49,210 ALI: Slobodno pitajte bilo kakvih pitanja, ako ste zbunjeni. 960 00:47:52,280 --> 00:47:53,980 ROB: Je li itko zapeo? 961 00:47:53,980 --> 00:47:57,160 ALI: Da, to je dobra stvar. 962 00:47:57,160 --> 00:47:58,590 ALI: Čekaj, ste zapeli u stolici? 963 00:47:58,590 --> 00:48:01,010 Oh. 964 00:48:01,010 --> 00:48:02,260 Bio sam malo brine. 965 00:48:06,670 --> 00:48:12,150 ROB: Zbog Upravo sam shvatio da ćemo htjeti 966 00:48:12,150 --> 00:48:13,300 drugi bitovni operator. 967 00:48:13,300 --> 00:48:16,985 Za sada, hajdemo samo pretvoriti u mala slova velika slova. 968 00:48:23,280 --> 00:48:25,220 ALI: Žao mi je, nisam svatko dobiti tu najavu? 969 00:48:25,220 --> 00:48:27,755 Mi ćemo ići s velikim slovima u mala slova. 970 00:48:27,755 --> 00:48:30,990 ROB: Onda ćemo razgovarati malih u velika slova pravo nakon toga. 971 00:48:33,820 --> 00:48:36,650 Oh, ne. 972 00:48:36,650 --> 00:48:39,560 Imamo bug u to, što, pretpostavljam, nikada nismo pokušali pokrenuti. 973 00:48:39,560 --> 00:48:44,140 Koji je samo da char c treba biti proglašen izvan petlje, jer 974 00:48:44,140 --> 00:48:45,805 njegov opseg je ograničen u petlji. 975 00:48:49,200 --> 00:48:53,060 ZVUČNIK 32: U ovom slučaju, to je u redu koristiti broj? 976 00:48:53,060 --> 00:48:56,930 ROB: Eh, vi ne trebate. 977 00:48:56,930 --> 00:49:02,040 Ako sam vam jamči da kapital 'A'- ili, mala slova' 'minus kapital' ' 978 00:49:02,040 --> 00:49:09,340 bio je točno jedan bit, ali da ne znaju da je 32 - 979 00:49:09,340 --> 00:49:13,160 stvari će raditi jednako dobro, ako je to bilo 16-bitna da je poludio - ili 980 00:49:13,160 --> 00:49:14,610 ne, mislim da wouldn't - 981 00:49:14,610 --> 00:49:18,270 ili 64 bitni su zrcaljeno, eventualno. 982 00:49:18,270 --> 00:49:23,230 Ali ne treba koristiti 32. 983 00:49:23,230 --> 00:49:26,141 Umjesto toga mogli koristiti mala slova 'a' minus 'prijestolnicom'. 984 00:49:26,141 --> 00:49:29,340 >> ZVUČNIK 32: Ok. 985 00:49:29,340 --> 00:49:32,996 Što možete učiniti ako se osjećate kao da ste pisanje previše je možete definirati 986 00:49:32,996 --> 00:49:33,435 na vrhu. 987 00:49:33,435 --> 00:49:41,830 Dakle, možete biti poput int razlika = mala slova 'a' minus 'prijestolnicom'. I 988 00:49:41,830 --> 00:49:43,980 onda možete upisati razliku umjesto. 989 00:49:43,980 --> 00:49:45,110 To je valjan. 990 00:49:45,110 --> 00:49:48,002 Ali samo pomoću broj 32 je vrsta - 991 00:49:48,002 --> 00:49:51,104 ZVUČNIK 33: Iako je zbog činjenice da ga je 32-bitni? 992 00:49:51,104 --> 00:49:52,570 ALI: Da. 993 00:49:52,570 --> 00:49:54,960 ROB: Tu bi moglo biti - 994 00:49:54,960 --> 00:49:57,780 jedino jamstvo moramo vas učiniti je da razlika između 995 00:49:57,780 --> 00:49:59,480 malih i velikih je jedna bitna. 996 00:49:59,480 --> 00:50:04,670 To ne bi trebalo biti važno da se dogodi da se 32-bitni da je poludio. 997 00:50:04,670 --> 00:50:06,610 Za vrijeme razmatranja, počet ćemo ide preko toga. 998 00:50:09,170 --> 00:50:10,370 To je u redu ako nisu završili. 999 00:50:10,370 --> 00:50:13,090 Ne brinite za to. 1000 00:50:13,090 --> 00:50:16,260 ROB: Pod pretpostavkom da je c slovo - 1001 00:50:16,260 --> 00:50:18,030 mi nemamo pretpostaviti je c slovo. 1002 00:50:18,030 --> 00:50:20,750 Znamo c slovo nakon ovog while petlje - 1003 00:50:20,750 --> 00:50:22,160 do-while petlja. 1004 00:50:22,160 --> 00:50:28,590 Dakle, to znači da izgleda ovako ''. Dakle, ako želimo dovesti ova 1005 00:50:28,590 --> 00:50:32,895 '' Da je ovo '', ono što trebamo napraviti? 1006 00:50:36,890 --> 00:50:41,920 Pa kako ćemo pretvoriti i okrenite malo? 1007 00:50:48,040 --> 00:50:49,450 ALI: Kako ćemo ga okrenuti? 1008 00:50:49,450 --> 00:50:53,010 >> ROB: Dakle, mi znamo što želimo okrenuti 32 bita. 1009 00:50:53,010 --> 00:50:59,722 Tako da će učiniti '' minus '', ili možemo napisati 32, ali - 1010 00:50:59,722 --> 00:51:03,090 to prokleto, to je obrnuto. 1011 00:51:03,090 --> 00:51:07,250 ALI: Ok, tako Rob ovdje je izračuna taj broj, magični broj 32. 1012 00:51:07,250 --> 00:51:12,000 Dakle, on je saznati gdje da malo Flip područje će biti. 1013 00:51:12,000 --> 00:51:14,810 A onda ono što mi staviti gdje upitnika su? 1014 00:51:14,810 --> 00:51:16,740 ROB: Kako ćemo okrenuti taj zalogaj? 1015 00:51:16,740 --> 00:51:22,784 U smislu veliko slovo, to je 0, a mi želimo da postane jedan. 1016 00:51:22,784 --> 00:51:23,660 ZVUČNIK 34: |. 1017 00:51:23,660 --> 00:51:24,910 ROB: Da. 1018 00:51:28,780 --> 00:51:38,190 Dakle, ovo je nas govoreći uzmemo ''. Mi smo ga ORing s 0 - 1019 00:51:38,190 --> 00:51:40,750 1000 - 1020 00:51:40,750 --> 00:51:44,720 i da = da. 1021 00:51:44,720 --> 00:51:45,930 ALI: Ima li to smisla svima? 1022 00:51:45,930 --> 00:51:48,812 Možemo proći kroz to malo po malo, ako želite. 1023 00:51:52,030 --> 00:51:56,300 ZVUČNIK 35: Jeste li [nečujan]? 1024 00:51:56,300 --> 00:51:57,590 ALI: Gdje je minus? 1025 00:51:57,590 --> 00:51:58,500 ROB: Oh, misliš ovdje? 1026 00:51:58,500 --> 00:51:59,070 ALI: Oh, da. 1027 00:51:59,070 --> 00:52:00,140 ROB: Pa mislim da je ovo nas. 1028 00:52:00,140 --> 00:52:05,670 Mogli bismo reći 32, a sada smo samo pomoću bitovni operatori. 1029 00:52:05,670 --> 00:52:07,010 ALI: Mi se ne sviđa čarobne brojeve. 1030 00:52:07,010 --> 00:52:10,460 Nećemo to učiniti. 1031 00:52:10,460 --> 00:52:13,592 Također mislim da smo samo trebali koristiti bitovni operator - 1032 00:52:13,592 --> 00:52:19,042 ZVUČNIK 36: Ako koristite ^ A, da ćete dobiti 32? 1033 00:52:19,042 --> 00:52:19,980 ZVUČNIK 37: Da, mislim - 1034 00:52:19,980 --> 00:52:21,090 ROB: Da li će se. 1035 00:52:21,090 --> 00:52:23,320 ALI: Ovo je način kako bi to učinio za odlazak 1036 00:52:23,320 --> 00:52:25,370 od kapitala u mala slova. 1037 00:52:25,370 --> 00:52:31,130 >> Sada možete li mi itko reći zašto Rob i ja sam promijenio brz i kako smo krenuli 1038 00:52:31,130 --> 00:52:34,040 od velikih slova malim slovima, umjesto da mala slova 1039 00:52:34,040 --> 00:52:37,810 velika slova kao što smo radili prije? 1040 00:52:37,810 --> 00:52:44,520 Se bilo tko imati bilo koji ideja zašto to može biti teže? 1041 00:52:44,520 --> 00:52:44,880 ROB: Tako ćemo učiniti - 1042 00:52:44,880 --> 00:52:46,178 ALI: Da, ići naprijed. 1043 00:52:46,178 --> 00:52:49,640 ZVUČNIK 38: | operater je bio samo jako dobar za dodavanje. 1044 00:52:49,640 --> 00:52:51,200 ALI: Da, točno. 1045 00:52:51,200 --> 00:52:58,320 ROB: Dakle, ono što želite učiniti u malim slovima u velika slova slučaj je, 1046 00:52:58,320 --> 00:53:00,175 pretvoriti ovaj 'a'- 1047 00:53:08,540 --> 00:53:14,820 tako želimo staviti u nekim brojevima i ovdje koristite neki operator, tako da je u pitanju 1048 00:53:14,820 --> 00:53:21,910 van grada A. Mi još uvijek vjerojatno pomoću 32 nekako, ali kako sada to mi 1049 00:53:21,910 --> 00:53:25,280 dobiti ovu izaći na ovo? 1050 00:53:40,910 --> 00:53:42,750 Dakle c - 1051 00:53:42,750 --> 00:53:44,000 oh, ja još uvijek želim da previše - 1052 00:53:46,940 --> 00:53:51,055 ALI: Pa sad, ako smo pretvaranja iz malih slova u velika slova opet, onda mi 1053 00:53:51,055 --> 00:53:55,170 obaviti operaciju ^, kao vi, rekao je. 1054 00:53:55,170 --> 00:53:57,650 ROB: Postoje i drugi načini koje možete učiniti stvari. 1055 00:53:57,650 --> 00:54:01,680 Puno bitovni operatori završiti vrlo lako definirati u smislu 1056 00:54:01,680 --> 00:54:03,460 drugih bitovni operatori. 1057 00:54:03,460 --> 00:54:11,150 Tako sam bio idući da ne koristite ^ ili na sve, ali ^ radio savršeno u redu. 1058 00:54:11,150 --> 00:54:17,910 >> ALI: Ok, pa ćemo ići na posljednjem problema, a to je osnovno - 1059 00:54:17,910 --> 00:54:22,390 Posljednji problem je pretvoriti u nešto binarni. 1060 00:54:22,390 --> 00:54:26,350 Tako, na primjer, imate 50, a zatim ga pretvoriti u 1061 00:54:26,350 --> 00:54:31,400 binarna, što je 110.010. 1062 00:54:31,400 --> 00:54:36,010 I mislim da vi svi znamo o binarnom iz predavanja. 1063 00:54:36,010 --> 00:54:39,270 A također ne bi trebao staviti bilo vodeću 0S u njega. 1064 00:54:39,270 --> 00:54:41,460 ROB: Možete ignorirati taj dio za sada. 1065 00:54:41,460 --> 00:54:45,250 Prvi prolaz, možete to učiniti tako da postoje vodeći 0s. 1066 00:54:45,250 --> 00:54:49,200 A onda možemo mijenjati da bi nemaju vodeću 0S, ako imamo vremena. 1067 00:54:49,200 --> 00:54:50,630 ALI: Dakle, ne brinite o tome. 1068 00:54:50,630 --> 00:54:52,620 Samo pokušati dobiti u binarnom. 1069 00:54:55,880 --> 00:54:59,855 Dobro mjesto za početak će biti - 1070 00:54:59,855 --> 00:55:02,010 ROB: Moramo tražiti cijeli broj. 1071 00:55:02,010 --> 00:55:03,150 ALI: Oh yeah, to je dobar. 1072 00:55:03,150 --> 00:55:04,170 Možemo početi s tim. 1073 00:55:04,170 --> 00:55:06,870 Tako možete promijeniti brz. 1074 00:55:06,870 --> 00:55:08,840 Dakle, umjesto lika, sada smo se bave brojeva. 1075 00:55:13,670 --> 00:55:14,920 Cool? 1076 00:55:20,630 --> 00:55:25,300 >> ROB: A sada ono što je naše ne-a uvjet će biti? 1077 00:55:25,300 --> 00:55:27,750 To je molba za ne-negativni cijeli broj. 1078 00:55:31,080 --> 00:55:34,280 ALI: Kad ne želimo zadržati pitajući korisnika za nešto drugo? 1079 00:55:34,280 --> 00:55:35,950 Kada je manji od 0. 1080 00:55:35,950 --> 00:55:36,760 ALI: Točno. 1081 00:55:36,760 --> 00:55:38,010 ROB: Dok sam je manje od 0. 1082 00:55:41,090 --> 00:55:45,120 ALI: Sada želimo pretvoriti ga. 1083 00:55:45,120 --> 00:55:48,150 Nemojte vi imate ideje o tome što učiniti? 1084 00:55:48,150 --> 00:55:49,400 Bilo inklings? 1085 00:55:53,610 --> 00:55:54,984 Da. 1086 00:55:54,984 --> 00:55:57,344 ZVUČNIK 39: Ne moramo ga pretvoriti, ili možemo jednostavno ispisati neki 0s i 1s 1087 00:55:57,344 --> 00:55:58,760 da će biti pravo broj? 1088 00:55:58,760 --> 00:56:02,070 Možete li to učiniti za petlje i računati od strane sila 2? 1089 00:56:02,070 --> 00:56:03,320 ROB: Da. 1090 00:56:05,750 --> 00:56:08,425 Ne trebate se ja pretvoriti u svojoj binarni - 1091 00:56:08,425 --> 00:56:13,720 binarni prikaz neću stati unutar ja. 1092 00:56:13,720 --> 00:56:19,090 Vi samo trebate ispisati binarni zastupljenost ja. 1093 00:56:19,090 --> 00:56:21,010 ALI: Drugim riječima, ne morate ići po silama dva. 1094 00:56:21,010 --> 00:56:23,710 ROB: Jer sam se već pohranjeni kao izvršne datoteke, tako da ne morate 1095 00:56:23,710 --> 00:56:25,110 ga pretvoriti u binarni. 1096 00:56:25,110 --> 00:56:27,260 Dovoljno je otići preko svog binarnog, i ispisati ga. 1097 00:56:30,080 --> 00:56:32,140 I ti si idući u morati koristiti bitovni, jer želite pogledati 1098 00:56:32,140 --> 00:56:33,390 stvarni bita. 1099 00:56:37,060 --> 00:56:38,600 Ne morate koristiti bitovni, ali molim vas. 1100 00:56:44,130 --> 00:56:47,160 I to je zapravo - 1101 00:56:47,160 --> 00:56:50,200 možete jednostavno napraviti ovlasti dvije pomnoži dva. 1102 00:56:50,200 --> 00:56:55,120 Mi ćemo ići preko jednog od posljednja dva binarnih bitovni operatori, 1103 00:56:55,120 --> 00:56:56,410 što je to jedan. 1104 00:56:56,410 --> 00:56:58,730 Dakle, kada se uzme - 1105 00:56:58,730 --> 00:57:00,083 >> ALI: Možete li proći kroz oboje? 1106 00:57:00,083 --> 00:57:01,440 ROB: Da. 1107 00:57:01,440 --> 00:57:03,050 Dakle, idemo s devet. 1108 00:57:03,050 --> 00:57:05,210 Dakle, devet lijevo pomak 1 - 1109 00:57:05,210 --> 00:57:12,220 ono lijevo pomak znači samo premjestiti sve bitova na lijevoj i umetnite 0. 1110 00:57:12,220 --> 00:57:15,530 Dakle, idemo sve komadiće 9 na lijevoj jedan 1111 00:57:15,530 --> 00:57:20,240 položaj, što nam daje - 1112 00:57:26,530 --> 00:57:31,570 Dakle, primijetite smo pomaknuo sve lijevo jedan, a umetnuta 0 na 1113 00:57:31,570 --> 00:57:32,730 desna strana. 1114 00:57:32,730 --> 00:57:36,755 Ako mi je pomaknuo lijevo prema dva, mi bi prebaciti sve lijevo od dva, 1115 00:57:36,755 --> 00:57:41,950 i umetnite dvije 0S kako bi popunili praznine. 1116 00:57:41,950 --> 00:57:43,200 Pitanje? 1117 00:57:44,890 --> 00:57:47,510 ALI: Pa onda desno pomak ne sličnu stvar. 1118 00:57:47,510 --> 00:57:53,190 Ako imate devet pravi zaokret 1 onda ste upravo kreće sve preko 1119 00:57:53,190 --> 00:57:57,890 Dobro, izgubit ćete brojku, tako sto umjesto. 1120 00:57:57,890 --> 00:58:04,142 ROB: Dakle, to je u redu da se gubi malo da se dogodilo da se svi 1121 00:58:04,142 --> 00:58:05,200 način na desno. 1122 00:58:05,200 --> 00:58:08,850 Postoje različite vrste pravim smjene, ali u osnovi se možete sjetiti 1123 00:58:08,850 --> 00:58:11,410 Pravo pomak samo kao dijeljenjem dva. 1124 00:58:11,410 --> 00:58:14,430 A možete misliti lijevoj smjene kao pomnoži sa dva. 1125 00:58:14,430 --> 00:58:16,490 Dakle, ako vam pretvoriti ovo - 1126 00:58:16,490 --> 00:58:22,350 ako pretvaraju 9 pomak 1, koji je jednak 10010, ako je zapravo otišao 1127 00:58:22,350 --> 00:58:25,100 kroz binarnog i shvatio što je to bilo, to bi samo biti 18. 1128 00:58:25,100 --> 00:58:26,880 Mi samo pomnožiti dva. 1129 00:58:26,880 --> 00:58:30,982 1001 lijevi shift 2 će biti 36. 1130 00:58:30,982 --> 00:58:32,400 Mi pomnožiti 4. 1131 00:58:41,740 --> 00:58:45,360 Ok, super, tako da je zgodan bitovni operator za ovaj jedan. 1132 00:58:52,570 --> 00:58:53,330 Više zbunjenost? 1133 00:58:53,330 --> 00:58:54,870 Da li vi želite isprobati? 1134 00:58:54,870 --> 00:58:58,970 Ili možemo samo skok u desno i to početi? 1135 00:58:58,970 --> 00:59:01,140 ROB: Vjerojatno smo trebali skočiti pravo rezervirati 1136 00:59:01,140 --> 00:59:01,880 ALI: Da, Ok. 1137 00:59:01,880 --> 00:59:03,370 Rob: I prošetati kroz nju zajedno. 1138 00:59:03,370 --> 00:59:04,440 >> ALI: Pa ja ću samo ići u nju. 1139 00:59:04,440 --> 00:59:09,700 Dakle, kao što je rekao na početku, idemo samo proći kroz malo po malo. 1140 00:59:09,700 --> 00:59:11,890 Tako da ćemo morati petlju. 1141 00:59:11,890 --> 00:59:16,730 Se bilo tko imati ideju o najbolje vrste petlje proći kroz to? 1142 00:59:16,730 --> 00:59:20,544 Imamo dok petlje, učiniti-a petlje, za petlje. 1143 00:59:20,544 --> 00:59:22,400 ZVUČNIK 40: Do-while petlja? 1144 00:59:22,400 --> 00:59:25,150 ROB: Pa sjetite se što sam rekao prije o tome, mi samo koristimo učiniti-a 1145 00:59:25,150 --> 00:59:27,390 petlje dobiti korisničkog unosa. 1146 00:59:27,390 --> 00:59:30,890 Vi nikada prilično će puno ikada koristiti ih za bilo što drugo. 1147 00:59:30,890 --> 00:59:33,660 ALI: Problem s ne-dok petlje je to ipak nešto prije nego što provjerava 1148 00:59:33,660 --> 00:59:34,470 stanje. 1149 00:59:34,470 --> 00:59:36,540 Dakle, to bi mogao učiniti nešto loše - 1150 00:59:36,540 --> 00:59:38,640 sviđa, povrijediti - 1151 00:59:38,640 --> 00:59:40,350 učiniti nešto što nije moguće. 1152 00:59:40,350 --> 00:59:42,290 Dakle, želite da provjerite prvi. 1153 00:59:42,290 --> 00:59:47,620 ROB: Ima puno slučajeva gdje možete koristiti učiniti-a petlje, ali ljudi 1154 00:59:47,620 --> 00:59:52,120 Ne očekujem da ćete ih koristiti osim ako je korisnik ulaz. 1155 00:59:52,120 --> 00:59:54,215 Dakle, koristili smo naše do-while petlja se mogu dobiti. 1156 00:59:57,160 --> 01:00:01,260 Koliko puta je naš petlja će htjeti petlje? 1157 01:00:01,260 --> 01:00:04,060 Želimo petlji preko svake od bitova ja. 1158 01:00:04,060 --> 01:00:06,302 Koliko bita u ja? 1159 01:00:06,302 --> 01:00:07,266 ZVUČNIK 41: 32. 1160 01:00:07,266 --> 01:00:07,750 ALI: Da. 1161 01:00:07,750 --> 01:00:09,850 ROB: Dakle, tu su i 32 bita. 1162 01:00:09,850 --> 01:00:12,920 Mi ne želimo reći 32. 1163 01:00:12,920 --> 01:00:16,230 Mi umjesto želim reći sizeof - 1164 01:00:16,230 --> 01:00:18,226 koji ste vidjeli da je u razredu još? 1165 01:00:18,226 --> 01:00:19,100 ALI: Nope. 1166 01:00:19,100 --> 01:00:20,380 ROB: Zašto se reći da koristi taj - 1167 01:00:20,380 --> 01:00:22,160 sizeof (int) puta 8 - 1168 01:00:22,160 --> 01:00:23,530 ALI: Dakle, sizeof je - 1169 01:00:23,530 --> 01:00:27,050 >> ZVUČNIK 42: [nečujan] 1170 01:00:27,050 --> 01:00:27,440 ALI: Zanimljivo. 1171 01:00:27,440 --> 01:00:31,610 Dakle, sizeof je izgrađen-in C funkcija gdje to samo govori da 1172 01:00:31,610 --> 01:00:32,500 broj bitova u - 1173 01:00:32,500 --> 01:00:33,220 ROB: Byte. 1174 01:00:33,220 --> 01:00:34,210 ALI: Bytes, žao mi je - 1175 01:00:34,210 --> 01:00:39,990 broj bajtova da je varijabla ima za pohranu vrijednosti. 1176 01:00:39,990 --> 01:00:46,205 Dakle, mislim da je on otišao preko u razredu, zatim, int je 4 bajta možda. 1177 01:00:46,205 --> 01:00:46,610 Cool? 1178 01:00:46,610 --> 01:00:50,610 ROB: Ali ti ne bi trebao znati da je int je 4 bajta. 1179 01:00:50,610 --> 01:00:52,670 Trebali biste biti u mogućnosti reći - 1180 01:00:52,670 --> 01:00:55,870 trebali koristiti sizeof (int) dobiti 4 bajta. 1181 01:00:55,870 --> 01:00:59,170 I to je zapravo važno za neke stvari. 1182 01:00:59,170 --> 01:01:01,650 Int možda neće biti četiri bajta. 1183 01:01:01,650 --> 01:01:04,050 Na drugom računalu, int može biti 8 bajtova. 1184 01:01:04,050 --> 01:01:08,500 Dakle, vaš program neće raditi na tom računalu jer ćete teško kodirana 32 1185 01:01:08,500 --> 01:01:12,230 bitova kada je na tom računalu se događa da se 64 bita. 1186 01:01:12,230 --> 01:01:15,260 ALI: Znači imate ukupan broj bitova koji želite da preokrenu. 1187 01:01:15,260 --> 01:01:17,480 Rob: A razlika između bajtu i malo je da postoji 1188 01:01:17,480 --> 01:01:19,100 su osam bitova u bajtu. 1189 01:01:19,100 --> 01:01:22,110 Dakle, sizeof (int) vraća 4 bajta, onda moramo pomnožiti da 1190 01:01:22,110 --> 01:01:24,420 od 8 do 32 bita dobiti. 1191 01:01:24,420 --> 01:01:27,680 >> ALI: Ok, tako da znamo maksimum i znamo što želimo otići iz - 1192 01:01:27,680 --> 01:01:29,260 želimo proći kroz sve njih. 1193 01:01:29,260 --> 01:01:32,950 Dakle, želimo ići od 0 do numBits. 1194 01:01:32,950 --> 01:01:37,160 Dakle, zna li netko kako napisati petlju za to? 1195 01:01:37,160 --> 01:01:37,790 Svatko? 1196 01:01:37,790 --> 01:01:39,680 ZVUČNIK 43: [nečujan] 1197 01:01:39,680 --> 01:01:44,130 ALI: Dakle, želite prijeći broj ja od 0. bita za 1198 01:01:44,130 --> 01:01:47,840 prvi bitni, drugi bitni, treći malo, sve do numBits. 1199 01:01:47,840 --> 01:01:50,972 Maksimalan broj bitova koje možete dobiti na. 1200 01:01:54,420 --> 01:01:57,780 ROB: Što je zajedničko petlja ćemo koristiti ono što želimo učiniti puta nešto x? 1201 01:01:57,780 --> 01:01:58,280 ALI: Za. 1202 01:01:58,280 --> 01:01:59,280 Savršeno. 1203 01:01:59,280 --> 01:02:00,440 Dakle, imamo za. 1204 01:02:00,440 --> 01:02:05,242 A onda ćemo stvoriti iteratora, što nije idući u biti ja. 1205 01:02:05,242 --> 01:02:06,850 ROB: j. 1206 01:02:06,850 --> 01:02:08,080 ALI: J = 0. 1207 01:02:08,080 --> 01:02:09,740 Tako ćemo početi na 0. 1208 01:02:09,740 --> 01:02:13,110 A onda ćemo imati uvjet da bi bili sigurni, dok ste 1209 01:02:13,110 --> 01:02:14,968 prolazi kroz njega svaki put - 1210 01:02:14,968 --> 01:02:16,960 [Pridodati glasovima] 1211 01:02:16,960 --> 01:02:17,960 ROB: j. 1212 01:02:17,960 --> 01:02:19,970 ALI: j je manje od numBits. 1213 01:02:19,970 --> 01:02:23,680 Dakle, mi ne želimo učiniti stvarni iznosi jedan, jer oni numBits 1214 01:02:23,680 --> 01:02:25,365 ukupno, i mi početi na 0. 1215 01:02:25,365 --> 01:02:26,360 Tako smo zapravo ćeš imati - 1216 01:02:26,360 --> 01:02:27,400 ZVUČNIK 44: Oh. 1217 01:02:27,400 --> 01:02:29,300 ALI: Indeksi ne završavaju na numBits minus jedan. 1218 01:02:29,300 --> 01:02:34,070 ROB: Mi označiti komadići 0-31, mi ih ne označite 1 do 32. 1219 01:02:34,070 --> 01:02:36,970 ALI: I onda ćemo povećavati svaki put po jedan, jer želimo da 1220 01:02:36,970 --> 01:02:38,050 provjeriti svaki pojedini jedan. 1221 01:02:38,050 --> 01:02:39,851 Dakle, mi ćemo ići j + +. 1222 01:02:39,851 --> 01:02:42,740 >> ZVUČNIK 45: Zašto to radiš? 1223 01:02:42,740 --> 01:02:46,100 ZVUČNIK 46: Zašto ideš kroz svaki zalogaj? 1224 01:02:46,100 --> 01:02:49,310 ROB: Dakle, želimo ići kroz svaki zalogaj i - 1225 01:02:52,780 --> 01:02:55,100 Tako recimo imamo neki broj. 1226 01:02:55,100 --> 01:02:56,195 ALI: 68. 1227 01:02:56,195 --> 01:02:57,470 ROB: Mi možemo koristiti 68. 1228 01:02:57,470 --> 01:03:00,450 Dakle, binarni će biti 100.100. 1229 01:03:00,450 --> 01:03:05,540 Dakle, ovo je unutar ja i želimo ići preko svake od tih bitova. 1230 01:03:05,540 --> 01:03:06,450 Je li to jedan? 1231 01:03:06,450 --> 01:03:07,320 Ispis jedne. 1232 01:03:07,320 --> 01:03:08,120 Je li to 0? 1233 01:03:08,120 --> 01:03:09,100 Ispis 0. 1234 01:03:09,100 --> 01:03:10,530 Onda idemo na sljedeći zalogaj. 1235 01:03:10,530 --> 01:03:11,210 Je li to jedan? 1236 01:03:11,210 --> 01:03:11,610 Ispis jedne. 1237 01:03:11,610 --> 01:03:11,830 Je 0? 1238 01:03:11,830 --> 01:03:13,080 Ispis 0. 1239 01:03:14,880 --> 01:03:16,710 ALI: Cool, ok. 1240 01:03:16,710 --> 01:03:22,880 Sada smo na ispravnom indeksa za gdje da malo je. 1241 01:03:25,380 --> 01:03:28,080 Kako možemo provjeriti tu određenu jedan? 1242 01:03:28,080 --> 01:03:33,130 Recimo da smo na j = 0, tako da želimo provjeriti 0 indeks malo. 1243 01:03:33,130 --> 01:03:37,980 Dakle, u ovom slučaju, ovaj jedan. 1244 01:03:37,980 --> 01:03:41,930 >> Tako sada kako ćemo ići o prijavi - Oh, to bi bilo to jednom. 1245 01:03:41,930 --> 01:03:42,810 ROB: Da. 1246 01:03:42,810 --> 01:03:44,310 ALI: Žao mi je. 1247 01:03:44,310 --> 01:03:47,930 Kako će mi ići oko provjere da jednom, u određenom smislu? 1248 01:03:47,930 --> 01:03:52,030 Kako bismo provjerili je li to 0 ili 1? 1249 01:03:52,030 --> 01:03:52,730 Pa let's - 1250 01:03:52,730 --> 01:03:53,940 KLASA: A 1? 1251 01:03:53,940 --> 01:03:54,390 ALI: I? 1252 01:03:54,390 --> 01:03:55,010 Da. 1253 01:03:55,010 --> 01:03:57,810 ROB: Pa recimo da smo već jednom. 1254 01:03:57,810 --> 01:04:02,470 Onda to i to će se vratiti da li je 1 ili 0. 1255 01:04:05,580 --> 01:04:08,200 ALI: Dakle, možemo ići dolje. 1256 01:04:08,200 --> 01:04:10,695 I što možemo učiniti kako vi rekao, da radiš i funkciju. 1257 01:04:13,810 --> 01:04:15,560 ROB: int - 1258 01:04:15,560 --> 01:04:18,290 kako želim reći ovo - 1259 01:04:18,290 --> 01:04:24,250 isOne = ja. 1260 01:04:24,250 --> 01:04:29,770 I po prvi malo mi se dogoditi da se gleda, radimo I & 1. 1261 01:04:29,770 --> 01:04:33,302 Sada ono što ćemo htjeti i po za drugi malo? 1262 01:04:33,302 --> 01:04:34,294 ZVUČNIK 47: 2. 1263 01:04:34,294 --> 01:04:36,110 ROB: Da, drugi da smo na dva. 1264 01:04:36,110 --> 01:04:39,100 ALI: Vi ćete primijetiti da jedan je preselio na lijevu jednom. 1265 01:04:39,100 --> 01:04:44,320 Tako smo naučili nikakve bitovni operatori učiniti tu funkciju? 1266 01:04:44,320 --> 01:04:45,160 ROB: sljedeći - 1267 01:04:45,160 --> 01:04:46,280 ALI: Da, točno, točno. 1268 01:04:46,280 --> 01:04:48,670 Dakle, to je lijevo pomak. 1269 01:04:48,670 --> 01:04:51,120 Umjesto uvijek provjere s jedne, idemo ga pomaknuti. 1270 01:04:51,120 --> 01:04:53,470 A koliko puta ćemo ga prebaciti? 1271 01:04:53,470 --> 01:04:59,340 Ako smo provjeru 0. jedan onda ćemo ga premjestiti na nulu. 1272 01:04:59,340 --> 01:04:59,975 Da, točno. 1273 01:04:59,975 --> 01:05:02,090 Tako ste ostavili ga prebaciti j. 1274 01:05:02,090 --> 01:05:02,550 Savršeno. 1275 01:05:02,550 --> 01:05:03,550 Dakle, sada znamo - 1276 01:05:03,550 --> 01:05:06,450 imamo ovu int o ako je jedan, a onda - 1277 01:05:10,690 --> 01:05:14,670 pa Rob je vrsta varanja ovdje - 1278 01:05:14,670 --> 01:05:18,090 pa sada ide naprijed, a on je samo rekao da ako to je zapravo jedna, 1279 01:05:18,090 --> 01:05:23,540 jer jedan true, tako da ne moramo reći ISF isOne jednaka 1 - 1280 01:05:23,540 --> 01:05:29,210 pa ako isOne, onda ćemo ispisati jedan, a inače smo ispisali 0. 1281 01:05:29,210 --> 01:05:33,350 >> ROB: Pa naš program ima ukupnu bug. 1282 01:05:33,350 --> 01:05:35,845 Pa, pitanja na ovo prvo. 1283 01:05:35,845 --> 01:05:41,692 ZVUČNIK 48: Može li se ikada stavio isOne unutar četiri operacije dijelu i 1284 01:05:41,692 --> 01:05:47,804 onda su ga se smjeni kao zadnji dio? 1285 01:05:47,804 --> 01:05:50,050 Dakle isOne jednak 1, a zatim - 1286 01:05:50,050 --> 01:05:53,140 ROB: Da, možete. 1287 01:05:53,140 --> 01:05:57,200 Mi zapravo može pokazati da kad smo riješili bug koji sam o 1288 01:05:57,200 --> 01:06:00,050 razgovarati sa svima vama. 1289 01:06:00,050 --> 01:06:03,470 Obavijest redoslijed idemo preko stvari. 1290 01:06:03,470 --> 01:06:10,570 S obzirom na to binarni prikaz, mi smo počevši s 0. bita. 1291 01:06:10,570 --> 01:06:13,010 Ako je 0, onda smo ispisa - 1292 01:06:13,010 --> 01:06:15,620 dobro, to je 0, pa smo se ispisuje 0. 1293 01:06:15,620 --> 01:06:16,860 Onda idemo na drugi zalogaj. 1294 01:06:16,860 --> 01:06:19,100 To je 0, pa smo ispisali 0. 1295 01:06:19,100 --> 01:06:20,290 Onda smo ići na treći zalogaj. 1296 01:06:20,290 --> 01:06:22,950 To je jedan, tako da smo ispisali jedan. 1297 01:06:22,950 --> 01:06:24,580 ALI: Tako to ide unatrag. 1298 01:06:24,580 --> 01:06:27,906 Pa kako ti dečki ukazuju na to da smo riješili da i otići u drugom smjeru? 1299 01:06:27,906 --> 01:06:28,900 ZVUČNIK 49: [nečujan] 1300 01:06:28,900 --> 01:06:29,490 ROB: Da. 1301 01:06:29,490 --> 01:06:34,500 Dakle, umjesto da ide od 0 do numBits, ići ćemo s numBits bitova na 0.. 1302 01:06:34,500 --> 01:06:35,600 ALI: Pa [nečujan] 1303 01:06:35,600 --> 01:06:36,940 Uvijek možete otići u drugom smjeru. 1304 01:06:36,940 --> 01:06:38,970 ROB: NumBits minus 1, jer to je zadnja nubmer - 1305 01:06:38,970 --> 01:06:41,160 ALI: Jer to ide 0-31. 1306 01:06:41,160 --> 01:06:44,420 A onda ćemo uvijek biti sigurni da je veći od 0, tako da ne ide 1307 01:06:44,420 --> 01:06:46,100 previše desno. 1308 01:06:46,100 --> 01:06:48,800 A onda ćete uvijek oduzimati po jedan ići desno. 1309 01:06:48,800 --> 01:06:52,240 >> ROB: Dakle, sada imamo obrnuti petlju, a broj je natrag u tisak 1310 01:06:52,240 --> 01:06:53,586 na ispravan način. 1311 01:06:53,586 --> 01:06:57,560 ZVUČNIK 50: Ne morate promijeniti shift stvar previše? 1312 01:06:57,560 --> 01:06:58,810 ALI: Dakle, br. 1313 01:07:03,810 --> 01:07:06,470 ROB: Radimo iste točne operacije, osim sada 1314 01:07:06,470 --> 01:07:07,470 u obrnutom redoslijedu. 1315 01:07:07,470 --> 01:07:14,170 Dakle, umjesto da radi pomicanja po numBits minus 1 kako bi dobili ono što ovu 1316 01:07:14,170 --> 01:07:17,430 Malo je, umjesto da radi zadnja, samo ćemo to učiniti prvi. 1317 01:07:19,970 --> 01:07:22,970 Do unazad ove ovdje, mi obrnuti redoslijed svega 1318 01:07:22,970 --> 01:07:24,190 što se događa unutra. 1319 01:07:24,190 --> 01:07:28,610 No, mi ne želimo promijeniti ono što se događa unutar uopće. 1320 01:07:28,610 --> 01:07:29,860 ALI: Ima li to smisla? 1321 01:07:32,240 --> 01:07:33,660 Prerada? 1322 01:07:33,660 --> 01:07:41,200 Ok, tako da se bilo tko drugi imaju neke druge konceptualne pitanja? 1323 01:07:41,200 --> 01:07:45,030 ALI: Prije nego idemo u njegovu točku koja je - 1324 01:07:45,030 --> 01:07:46,280 ALI: U redu, dobro ide. 1325 01:07:48,350 --> 01:07:53,160 Rob: Umjesto korištenja j biti naš - 1326 01:07:55,780 --> 01:08:00,550 umjesto j uvijek pomak prema, kao jedan lijevi shift j, mislim ono 1327 01:08:00,550 --> 01:08:04,120 ti govoriš je vole, da j se koristiti. 1328 01:08:04,120 --> 01:08:09,560 Dakle, za j - 1329 01:08:09,560 --> 01:08:14,656 Mislim da je to teško - j = 1 << 31. 1330 01:08:14,656 --> 01:08:16,200 Je li to ono što želim? 1331 01:08:16,200 --> 01:08:18,470 Mislim da je to << 31. 1332 01:08:18,470 --> 01:08:22,840 j> = 1. 1333 01:08:22,840 --> 01:08:32,319 j >>, >> isOne, ja & j - 1334 01:08:32,319 --> 01:08:35,620 tako da sada umjesto korištenja - 1335 01:08:35,620 --> 01:08:38,370 ALI: Vi stalno kreće j umjesto 1336 01:08:38,370 --> 01:08:40,520 Indeks to provjeriti. 1337 01:08:40,520 --> 01:08:42,130 To nije tako loše. 1338 01:08:42,130 --> 01:08:43,960 Mi koristimo sličnu vrstu logike. 1339 01:08:43,960 --> 01:08:46,202 Dakle, ako idete natrag - 1340 01:08:46,202 --> 01:08:50,020 oh, ali to će ga izgubiti. 1341 01:08:50,020 --> 01:08:51,380 Ok, samo ćeš ga upisati ponovno. 1342 01:08:51,380 --> 01:08:56,880 Ako primijetite da imamo jednog << j količinu vremena, i bili smo 1343 01:08:56,880 --> 01:09:02,279 povećavanjem j svaki put po jedan prirasta, ali ovaj put umjesto 1344 01:09:02,279 --> 01:09:06,010 oni rade prirast j na vrhu unutar za petlju. 1345 01:09:06,010 --> 01:09:10,890 Dakle, umjesto da ga uvijek kreće prema dolje - 1346 01:09:10,890 --> 01:09:15,220 ROB: Prva iteracija for petlja, imamo j je 10.000. 1347 01:09:15,220 --> 01:09:20,000 Sljedeća iteracija od for petlje je 01.000. 1348 01:09:20,000 --> 01:09:22,380 Sljedeća iteracija je da. 1349 01:09:22,380 --> 01:09:26,800 I jedna samo će se držati propagiranju dolje dok smo pogodak vrlo 1350 01:09:26,800 --> 01:09:29,729 kraju, gdje sada je to. 1351 01:09:29,729 --> 01:09:33,990 Sljedeći jedan, jedan će se odgurnuo, i j više nije veća 1352 01:09:33,990 --> 01:09:35,090 od ili jednak 1. 1353 01:09:35,090 --> 01:09:38,380 Također sam mogao staviti veći od 0, istu razliku. 1354 01:09:38,380 --> 01:09:41,580 I onda to je to. 1355 01:09:41,580 --> 01:09:43,720 Pitanja? 1356 01:09:43,720 --> 01:09:44,760 Da. 1357 01:09:44,760 --> 01:09:49,740 >> ZVUČNIK 51: [nečujan] 1358 01:09:49,740 --> 01:09:51,729 ROB: Dakle, to je isto kao i - 1359 01:09:51,729 --> 01:09:57,270 ste vidjeli J + = 3? 1360 01:09:57,270 --> 01:10:00,960 Dakle, ovo je isto kao j = j + 3? 1361 01:10:00,960 --> 01:10:05,560 Možete to učiniti za gotovo bilo operatora u C. Dakle j >> = 3 1362 01:10:05,560 --> 01:10:10,490 jednaka j = j >> 3. 1363 01:10:13,980 --> 01:10:16,760 Tako da radi i sa bitovni operatori. 1364 01:10:16,760 --> 01:10:19,630 A ja ne bi stavio 31 ovdje. 1365 01:10:19,630 --> 01:10:23,790 Trebao sam staviti numBits - 1. 1366 01:10:23,790 --> 01:10:25,380 ALI: Jupi, nema čarobne brojke. 1367 01:10:25,380 --> 01:10:29,070 Ok, to je 04:00, iako, pa ako vi morate ići - ali to smisla? 1368 01:10:29,070 --> 01:10:30,320 Nemojte vi imate drugih pitanja? 1369 01:10:33,920 --> 01:10:38,470 ROB: Također sam bio idući u baciti u da, ako smo htjeli - 1370 01:10:38,470 --> 01:10:41,326 je on razgovarao ternarni operator uopće? 1371 01:10:41,326 --> 01:10:42,730 ALI: Ne 1372 01:10:42,730 --> 01:10:45,090 To je u redu. 1373 01:10:45,090 --> 01:10:46,970 ROB: Tako ste mogli gledati u njega za sljedeći put. 1374 01:10:51,030 --> 01:10:52,080 ALI: Ok, stvarno? 1375 01:10:52,080 --> 01:10:53,150 Sada ste samo prikazuje off. 1376 01:10:53,150 --> 01:10:54,210 ROB: Ne, sad it's - 1377 01:10:54,210 --> 01:11:00,490 to je ono što dobiva ljudi zainteresirani, a sada će ići pogledati u nju. 1378 01:11:00,490 --> 01:11:02,640 Pa sada, da čini istu stvar, u jednom koraku. 1379 01:11:05,150 --> 01:11:10,950 Dakle, prvo provjerite je ja & j 1? 1380 01:11:10,950 --> 01:11:12,530 Je li to istina? 1381 01:11:12,530 --> 01:11:17,000 Ako je tako, ispisati jedan, drugi, ispišite 0. 1382 01:11:17,000 --> 01:11:19,190 ALI: Ali, to radi drugi put je savršeno u redu, kao dobro. 1383 01:11:19,190 --> 01:11:20,920 Ona ima istu logiku. 1384 01:11:20,920 --> 01:11:22,730 Dakle, to nije kao jedan je - 1385 01:11:22,730 --> 01:11:24,620 ROB: U ovom trenutku, možemo se riješiti tih vitičastim zagradama, jer je to jedini 1386 01:11:24,620 --> 01:11:27,190 jedna linija za petlju. 1387 01:11:27,190 --> 01:11:29,370 ALI: Ok, tako da to ima smisla? 1388 01:11:29,370 --> 01:11:30,370 To je bila neka vrsta skoka. 1389 01:11:30,370 --> 01:11:34,870 Ali to je bio samo vrsta sintakse, tako da više. 1390 01:11:34,870 --> 01:11:36,250 >> Cool? 1391 01:11:36,250 --> 01:11:37,500 Bilo koja druga pitanja? 1392 01:11:40,880 --> 01:11:41,570 ROB: U redu. 1393 01:11:41,570 --> 01:11:42,310 ALI: U redu, super. 1394 01:11:42,310 --> 01:11:43,560 Hvala što ste došli na dijelu.