1 00:00:01,984 --> 00:00:07,450 [Powered by Google Translate] [ELEKTRONICKÉ STATICKÉ SOUNDS] 2 00:00:07,450 --> 00:00:11,320 ROB: Dobre, takže to, čo sme práve vás priviedlo, je CS50 priestory. 3 00:00:11,320 --> 00:00:12,325 ALI: Počkaj, počkaj zálohovať. 4 00:00:12,325 --> 00:00:13,175 Vitajte v sekcii! 5 00:00:13,175 --> 00:00:13,860 ROB: Vitajte v sekcii! 6 00:00:13,860 --> 00:00:14,742 ALI: Yay! 7 00:00:14,742 --> 00:00:16,840 ROB: Supersection! 8 00:00:16,840 --> 00:00:18,610 ALI: Som Ali a to je Rob. 9 00:00:18,610 --> 00:00:20,680 Dobre, teraz budeme vysvetľovať Spaces. 10 00:00:20,680 --> 00:00:23,650 ROB: Takže to, čo sme práve vás priviedlo, je CS50 priestory. 11 00:00:23,650 --> 00:00:29,260 Budete používať to veľa vo svojich oddieloch tejto semester. 12 00:00:29,260 --> 00:00:32,110 V podstate, sme už mali by ste si stiahnuť spotrebiče. 13 00:00:32,110 --> 00:00:38,630 A vy môžete myslieť CS50 priestorov ako webové rozhranie hovorí k spotrebiču 14 00:00:38,630 --> 00:00:40,670 že máme na nejakú serveri niekde. 15 00:00:40,670 --> 00:00:42,990 Takže si môžete spustiť kód v tomto rozhraní, a budeme 16 00:00:42,990 --> 00:00:44,180 pozrite sa, ako robiť veci. 17 00:00:44,180 --> 00:00:48,200 Môžete sa tiež pozrieť na kód iných ľudí v sekcii, a - 18 00:00:48,200 --> 00:00:51,920 ALI: A ako niektorí ľudia zistili, môžete chatovať ľudí na strane. 19 00:00:51,920 --> 00:00:54,230 A my všetci vidíme to, taky, takže je to vzrušujúce. 20 00:00:54,230 --> 00:00:55,655 Poď, poď a sadni si. 21 00:00:55,655 --> 00:00:57,060 Posaďte sa. 22 00:00:57,060 --> 00:00:57,840 >> ROB: Takže, úseky sú - 23 00:00:57,840 --> 00:00:59,380 ALI: Nie, nie, vy chlapci prídu. 24 00:00:59,380 --> 00:01:03,356 ROB: Sekcia sa bude oveľa viac interaktívne tento semester. 25 00:01:03,356 --> 00:01:04,180 ALI: Oh, on je ako - 26 00:01:04,180 --> 00:01:05,840 Oh. 27 00:01:05,840 --> 00:01:07,530 Dobre, v pohode. 28 00:01:07,530 --> 00:01:15,630 Takže ak ste sa práve prichádza, môžete ísť na tento odkaz, ak sa dostanem 29 00:01:15,630 --> 00:01:20,190 tam, práve tam. 30 00:01:20,190 --> 00:01:22,780 Nemôžeme naozaj napísať, pretože nie je doska priestor, ale tento odkaz 31 00:01:22,780 --> 00:01:27,160 tu, choďte na to na svojich počítačoch, a budete zadať CS50 32 00:01:27,160 --> 00:01:29,810 Priestory, ktoré je celkom v pohode vec. 33 00:01:32,460 --> 00:01:33,830 Dobre. 34 00:01:33,830 --> 00:01:35,370 Máte nejaký problém? 35 00:01:35,370 --> 00:01:39,930 ROB: Takže si môžete nájsť problémy - 36 00:01:39,930 --> 00:01:42,720 musíme byť schopní písať to niekde. 37 00:01:42,720 --> 00:01:50,040 Takže ak idete na cs50.net/psets a to je hacker supersection - 38 00:01:50,040 --> 00:01:55,870 a idete do Hacker Edition PSet jeden, pozrite sa na špecifikáciu 39 00:01:55,870 --> 00:01:57,620 niekde na stránke - 40 00:02:01,940 --> 00:02:04,280 >> ALI: Takže v podstate, zatiaľ čo Rob pozerá, čo budeme robiť v 41 00:02:04,280 --> 00:02:06,650 časť dnes je, že je časť problémov - 42 00:02:06,650 --> 00:02:07,600 ROB: - na strane osem. 43 00:02:07,600 --> 00:02:09,300 ALI: - tzv časť problémov - 44 00:02:09,300 --> 00:02:10,280 ROB: Oddiel otázok. 45 00:02:10,280 --> 00:02:11,630 ALI: Je nám ľúto, časť otázok. 46 00:02:11,630 --> 00:02:14,450 A tie sú, čo budeme ísť cez - 47 00:02:14,450 --> 00:02:16,370 tie sú to, čo sme ísť cez dnes v oddiele. 48 00:02:16,370 --> 00:02:20,010 A budeme kódovať ho na CS50 priestorov, a dúfajme, že bude fungovať. 49 00:02:20,010 --> 00:02:22,210 A môžeme si pohovoriť skrze ne. 50 00:02:22,210 --> 00:02:24,510 A vy môžete klásť otázky, kedykoľvek máte pocit, - 51 00:02:24,510 --> 00:02:27,890 >> ROB: Tak to je k dostaniu za bežnou záležitosťou pre väčšinu psets. 52 00:02:27,890 --> 00:02:31,000 Myslím, že s týmto, to hovorí, že nemáte po ruke tieto otázky a 53 00:02:31,000 --> 00:02:36,780 Ale myšlienka je, že tieto otázky sú uvedené na PSet, a môžete prísť 54 00:02:36,780 --> 00:02:39,790 do sekcie majú tieto otázky odpovedal. 55 00:02:39,790 --> 00:02:42,730 Alebo, ak nechcete prísť do sekcie, môžete na ne odpovedať na vlastnú päsť, alebo si 56 00:02:42,730 --> 00:02:44,250 pomoc pri úradných hodín, alebo tak niečo. 57 00:02:44,250 --> 00:02:47,540 Ale to sú otázky, ktoré sa pokladajú príprava vás problémového súboru. 58 00:02:47,540 --> 00:02:50,910 A na hackerské vydanie, môže veľa otázok byť len o 59 00:02:50,910 --> 00:02:54,170 rozšírenie aktuálne SK znalosti. 60 00:02:54,170 --> 00:02:55,370 ALI: Jo, docela veľa. 61 00:02:55,370 --> 00:02:57,950 >> Dobre, takže, je každý na CS50 priestoroch? 62 00:02:57,950 --> 00:02:59,457 Ahoj, poď ďalej 63 00:02:59,457 --> 00:03:00,828 SPEAKER 1: Môžeme vidieť URL ešte raz? 64 00:03:04,030 --> 00:03:07,000 ROB: Jo, to bude jednoduchšie, akonáhle ste vlastne vo svojich oddieloch, a 65 00:03:07,000 --> 00:03:10,760 Vaša TF stačí e-mailom vám URL vopred. 66 00:03:10,760 --> 00:03:11,870 ALI: Yay, posaďte sa. 67 00:03:11,870 --> 00:03:13,170 Existujú miest tu. 68 00:03:13,170 --> 00:03:14,420 Predné nie je tak zlé. 69 00:03:17,112 --> 00:03:18,362 Čo? 70 00:03:20,650 --> 00:03:23,590 Takže, CS50 priestory, sme ako sa tam dostať. 71 00:03:23,590 --> 00:03:26,760 Má niekto nejaké otázky, ako sa dostaneme do - čo? 72 00:03:26,760 --> 00:03:28,060 ROB: Tam to nie je ani žiadna krieda. 73 00:03:28,060 --> 00:03:29,270 [Nepočuteľné] 74 00:03:29,270 --> 00:03:31,540 ALI: Sorry. 75 00:03:31,540 --> 00:03:32,950 Dalo by sa použiť vaše nechty? 76 00:03:32,950 --> 00:03:38,210 Sme vo veľmi low-tech miestnosti pre veľmi high-tech triedy. 77 00:03:38,210 --> 00:03:40,795 Dobre, je každý druh dobré? 78 00:03:40,795 --> 00:03:44,310 Má niekto statických otázky o tom? 79 00:03:44,310 --> 00:03:48,540 Ako som už povedal skôr, budeme prechádzať sekcie otázok v 80 00:03:48,540 --> 00:03:51,340 sa PSet špecifikácie. 81 00:03:51,340 --> 00:03:53,490 Takže je to len pár problémov, ktoré budeme 82 00:03:53,490 --> 00:03:57,490 kód v CS50 Spaces. 83 00:03:57,490 --> 00:03:58,740 Sú všetci dobre? 84 00:04:01,010 --> 00:04:01,360 Dobre. 85 00:04:01,360 --> 00:04:02,312 Dobrý? 86 00:04:02,312 --> 00:04:04,260 ROB: Máte notebook? 87 00:04:04,260 --> 00:04:05,150 ALI: Môžete vyraziť s Lucasom. 88 00:04:05,150 --> 00:04:06,960 Sedí hneď vedľa vás. 89 00:04:06,960 --> 00:04:10,030 Lepenie čas. 90 00:04:10,030 --> 00:04:10,990 >> ROB: Takže, začať s prvým problémom? 91 00:04:10,990 --> 00:04:11,260 ALI: Jo. 92 00:04:11,260 --> 00:04:11,820 Môžeme začať. 93 00:04:11,820 --> 00:04:12,390 Chceš ma - 94 00:04:12,390 --> 00:04:13,700 Môžem ísť. 95 00:04:13,700 --> 00:04:16,666 Takže, pôjdeme do PSet špecifikácie. 96 00:04:16,666 --> 00:04:17,640 Ach, prečo je to - 97 00:04:17,640 --> 00:04:18,890 ROB: Control. 98 00:04:21,769 --> 00:04:25,770 ALI: Dobre, takže ideme do odpovede tieto veci rovnako? 99 00:04:25,770 --> 00:04:26,190 ROB: Oh, yeah. 100 00:04:26,190 --> 00:04:27,280 Takže - 101 00:04:27,280 --> 00:04:29,675 ALI: Oh, všetci ostatní strážneho Robova hlavnú úlohu šortky? 102 00:04:32,430 --> 00:04:33,360 Dobre, v pohode. 103 00:04:33,360 --> 00:04:36,870 ROB: Jo, ja si nemyslím, že by sme nutne predpokladá, aby ste mali 104 00:04:36,870 --> 00:04:40,650 Sledoval ju pred príchodom do tejto sekcie, ale môžeme diskutovať o tých, 105 00:04:40,650 --> 00:04:43,870 problémy už predtým, pretože sú v sekcii otázok vecí. 106 00:04:43,870 --> 00:04:46,480 Takže ak ste na to pozeral, nebojte sa. 107 00:04:46,480 --> 00:04:48,630 Tí, ktorí majú Vyskúšajte a odpovedať. 108 00:04:48,630 --> 00:04:53,875 >> Takže, prvá otázka, čo je pre-procesor, ako sa # include 109 00:04:53,875 --> 00:04:56,080 sa týkajú? 110 00:04:56,080 --> 00:04:58,440 Takže má niekto odpoveď, že? 111 00:04:58,440 --> 00:04:59,320 ALI: Vy môžete hovoriť to. 112 00:04:59,320 --> 00:05:00,308 Iste, choďte do toho. 113 00:05:00,308 --> 00:05:03,766 SPEAKER 2: # include je nejaký pre-napísaný kód, a namiesto toho, aby 114 00:05:03,766 --> 00:05:08,706 skopírovať a vložiť ho do svojho programu, by len hovorím patrí to, 115 00:05:08,706 --> 00:05:14,140 pre-procesor vie, že to tam je, a že by mala pridať ho do 116 00:05:14,140 --> 00:05:17,520 neskôr alebo skôr niečo stane. 117 00:05:17,520 --> 00:05:18,466 ALI: Jo, úžasné. 118 00:05:18,466 --> 00:05:19,440 Cool. 119 00:05:19,440 --> 00:05:23,820 ROB: Takže, keď ste vlastne zostavovaní programu, pre-procesor je to 120 00:05:23,820 --> 00:05:25,230 Prvým krokom. 121 00:05:25,230 --> 00:05:27,620 Kompilácia sa deje v štyroch veľkých krokoch. 122 00:05:27,620 --> 00:05:31,120 Takže pre-procesor je prvý veľký, a to je to chlap, ktorý ide 123 00:05:31,120 --> 00:05:33,510 až do konca a hľadá všetky tieto Kříľek. 124 00:05:33,510 --> 00:05:36,610 A každý riadok, ktorý začína s hash, pre-procesor sa pozerá na to, a vidí 125 00:05:36,610 --> 00:05:37,880 ak to môže spracovať. 126 00:05:37,880 --> 00:05:43,800 Takže # include hovorí pre-procesor pozrieť na nejakú cs50.h 127 00:05:43,800 --> 00:05:47,830 súbor a stačí skopírovať a vložiť jeho obsah do tohto súboru. 128 00:05:47,830 --> 00:05:50,970 Takže si môžete naozaj # include, čo chcete, ale je to väčšinou bude 129 00:05:50,970 --> 00:05:53,700 . H súbory. 130 00:05:53,700 --> 00:05:55,820 Sme sa dostali do # define doteraz, takže na tom nezáleží. 131 00:05:55,820 --> 00:05:57,620 ALI: Jo, sme v pohode na tom jednom. 132 00:05:57,620 --> 00:05:59,450 Má niekto nejaké otázky týkajúce sa, že? 133 00:05:59,450 --> 00:06:01,090 Sme dobrý? 134 00:06:01,090 --> 00:06:02,430 Ďalšia otázka. 135 00:06:02,430 --> 00:06:07,096 >> SPEAKER 3: V krátkej, bolo tam niečo o c i? 136 00:06:07,096 --> 00:06:09,110 Je to dôležité, alebo je to irelevantné? 137 00:06:09,110 --> 00:06:11,210 ROB: O C s pre-procesora.? 138 00:06:11,210 --> 00:06:13,990 SPEAKER 3: Jo, alebo som niečo vymyslieť? 139 00:06:13,990 --> 00:06:18,290 ROB: Takže krátka mohla byť zobrazené pre-spracovanie tohto súboru a 140 00:06:18,290 --> 00:06:24,240 . Výstup do iného súboru c, takže si môžete vopred spracovať tento súbor - 141 00:06:24,240 --> 00:06:30,000 keď stačí spustiť ako, aby ahoj alebo rinčať hello.c, robíte všetko 142 00:06:30,000 --> 00:06:31,730 kompilácie v jednom veľkom kroku. 143 00:06:31,730 --> 00:06:34,780 Ale môžete explicitne to do svojich jednotlivých krokov. 144 00:06:34,780 --> 00:06:36,950 Takže prvý si môžete vopred spracovať. 145 00:06:36,950 --> 00:06:42,260 Potom môžete zostaviť, potom si môžete zostaviť, a potom môžete prepojiť. 146 00:06:42,260 --> 00:06:43,620 Dostaneme sa k týmto tie ostatné. 147 00:06:43,620 --> 00:06:47,410 Ale pre-spracovanie, tak nejako predbežného procesu ju, a potom to ide do 148 00:06:47,410 --> 00:06:49,270 ďalšie. c súboru. 149 00:06:49,270 --> 00:06:51,430 Vzhľadom k tomu, pre-spracovanie naozaj nie je nič meniť. 150 00:06:51,430 --> 00:06:52,800 Je to len banda kopírovanie a vkladanie. 151 00:06:52,800 --> 00:06:56,760 Dalo by sa ručne skopírovať a vložiť sami. 152 00:06:56,760 --> 00:06:59,630 ALI:. A aby bolo jasno, že c je súbor C, tak je to 153 00:06:59,630 --> 00:07:00,930 napísaný v C kód. 154 00:07:00,930 --> 00:07:03,300 Tak to ide z kódu C do C kód. 155 00:07:03,300 --> 00:07:05,210 Si len pridať viac kódu s librou. 156 00:07:05,210 --> 00:07:08,575 ROB: Keď vopred spracované, je to stále platný C súboru. 157 00:07:08,575 --> 00:07:09,940 SPEAKER 3: Dobre. 158 00:07:09,940 --> 00:07:10,540 ALI: Dobrá otázka. 159 00:07:10,540 --> 00:07:11,370 Páči sa mi, že. 160 00:07:11,370 --> 00:07:12,755 Dobre, ďalšia otázka. 161 00:07:17,870 --> 00:07:19,660 >> Čo je kompilátor? 162 00:07:19,660 --> 00:07:20,824 Každý, kto? 163 00:07:20,824 --> 00:07:21,286 Áno. 164 00:07:21,286 --> 00:07:24,650 SPEAKER 4: To sa mení pre-spracovaný kód do zostavy. 165 00:07:24,650 --> 00:07:25,110 ALI: Perfect. 166 00:07:25,110 --> 00:07:25,390 ROB: Áno. 167 00:07:25,390 --> 00:07:25,720 ALI: Cool. 168 00:07:25,720 --> 00:07:28,270 ROB: Tak to je to, čo kompilátor robí konkrétne 169 00:07:28,270 --> 00:07:30,740 keď používate rinčať. 170 00:07:30,740 --> 00:07:35,100 Vo veľmi všeobecnom zmysle, kompilátor je rovnako ako pri kódu v jednom jazyku 171 00:07:35,100 --> 00:07:37,070 a previesť ju do iného jazyka. 172 00:07:37,070 --> 00:07:38,370 Takže v C - 173 00:07:38,370 --> 00:07:43,750 alebo, no, zvonenie trvá kód, ktorý je v jazyku C a transformovať ju do zostavy. 174 00:07:43,750 --> 00:07:46,560 A nemusíte byť schopní porozumieť zostavu vôbec. 175 00:07:46,560 --> 00:07:49,830 Ale to je jazyk, ktorý to previesť ju do. 176 00:07:49,830 --> 00:07:50,230 >> ALI: Dobre. 177 00:07:50,230 --> 00:07:52,920 A potom, čo je assembler? 178 00:07:52,920 --> 00:07:54,270 Každý, kto? 179 00:07:54,270 --> 00:07:56,810 SPEAKER 5: [Nepočuteľné] na binárne? 180 00:07:56,810 --> 00:07:57,260 ALI: Je nám ľúto, čo? 181 00:07:57,260 --> 00:07:58,760 SPEAKER 5: [Nepočuteľné] na binárne? 182 00:07:58,760 --> 00:07:59,260 ROB: Jo. 183 00:07:59,260 --> 00:07:59,880 ALI: Áno. 184 00:07:59,880 --> 00:08:01,960 ROB: Tak assembler - 185 00:08:01,960 --> 00:08:05,830 kód assembleri je naozaj, naozaj blízko na to, čo váš počítač môže pochopiť, 186 00:08:05,830 --> 00:08:09,390 ale nezabudnite, že to nie je úplne rozumieť textu 187 00:08:09,390 --> 00:08:10,630 že je montáž kód. 188 00:08:10,630 --> 00:08:14,570 Musíte previesť do priameho 1s a 0s. 189 00:08:14,570 --> 00:08:17,000 Je to ako priamy prekladateľského procesu. 190 00:08:17,000 --> 00:08:19,450 Mohli by sme vám tabuľku, ktorá mapuje to, čo každý 191 00:08:19,450 --> 00:08:21,880 montážny návod rozumie. 192 00:08:21,880 --> 00:08:24,340 Ale assembler je len to, tento preklad pre vás. 193 00:08:24,340 --> 00:08:28,790 Je to transformácia kód assembleri do 1s a 0s. 194 00:08:28,790 --> 00:08:30,870 >> ALI: A potom, za posledné, čo je linker? 195 00:08:30,870 --> 00:08:35,070 A ako sa-lcs50 sa týkajú? 196 00:08:35,070 --> 00:08:37,010 Každý, kto? 197 00:08:37,010 --> 00:08:41,440 ROB: To je najťažšie a najmenej vysvetlil jeden v kompilátora videu. 198 00:08:41,440 --> 00:08:48,980 ALI: Pamätá si niekto vidieť-lcs50 v príkaze? 199 00:08:48,980 --> 00:08:50,690 SPEAKER 6: Keď si išiel do robiť. 200 00:08:50,690 --> 00:08:51,980 ALI: Je to v make. 201 00:08:51,980 --> 00:08:55,780 Jo, v pohode, v pohode. 202 00:08:55,780 --> 00:09:02,024 Je tam nejaké dohady alebo neurčité - áno, go. 203 00:09:02,024 --> 00:09:06,370 SPEAKER 7: Nie som si istý, pretože váš krátky bol naozaj [nepočuteľné], ale bol to 204 00:09:06,370 --> 00:09:12,244 niečo o tom, samostatné súbory s každú knižnicu a potom uvedenie 205 00:09:12,244 --> 00:09:13,620 ich všetky pohromade v jednej knižnici? 206 00:09:13,620 --> 00:09:14,400 ROB: Áno. 207 00:09:14,400 --> 00:09:23,000 Takže keď máte hello.c, je to naozaj jednoduchý program. 208 00:09:23,000 --> 00:09:25,570 Si naozaj len robí jednu vec v ňom. 209 00:09:25,570 --> 00:09:27,400 Ale keď sa dostanete do iných programov - 210 00:09:27,400 --> 00:09:31,700 a myslím, že aj keď ste GetString v rámci svojich programov, budete musieť začať 211 00:09:31,700 --> 00:09:33,830 vrátane ostatných súborov. 212 00:09:33,830 --> 00:09:38,000 Takže knižnica CS50 je jeden taký súbor, v ktorom máme implementácia 213 00:09:38,000 --> 00:09:40,750 z GetString a GetInt a všetky tie veci. 214 00:09:40,750 --> 00:09:45,540 Takže to, čo robí, je, že linker odíde hľadá cez všetky tieto 215 00:09:45,540 --> 00:09:49,400 súbory, vidieť, kde sú definované funkcie, uistite sa, že keď volám 216 00:09:49,400 --> 00:09:52,440 GetString niekde, že vie, že GetString znamená, že je to 217 00:09:52,440 --> 00:09:54,910 GetString cez v CS50 knižnici. 218 00:09:54,910 --> 00:09:58,895 Takže linker trvá len všetky tieto súbory, smeču dohromady, a teraz 219 00:09:58,895 --> 00:10:01,020 máte spustiteľný. 220 00:10:01,020 --> 00:10:05,600 Takže majte na pamäti, ak používate CS50 knižnice, budete potrebovať ako 221 00:10:05,600 --> 00:10:10,370 # Include hore, a potom tiež v príkaz make, ako vy 222 00:10:10,370 --> 00:10:12,630 povedal, budete mať k-lcs50. 223 00:10:12,630 --> 00:10:15,720 Takže môžete nielen mať jeden. 224 00:10:15,720 --> 00:10:18,294 Tak to je proste niečo, čo mať na pamäti pre neskoršie použitie. 225 00:10:18,294 --> 00:10:22,550 >> SPEAKER 8: Takže povedzme, že tam bol iný knižnica, rovnako ako cs51.h, by sme 226 00:10:22,550 --> 00:10:26,780 tiež pridať, lcs51? 227 00:10:26,780 --> 00:10:32,390 ROB: Jediný dôvod, prečo to-lcs50 funguje perfektne, je preto, že máme túto sadu 228 00:10:32,390 --> 00:10:35,800 v určitom mieste vo vašich spotrebičov tak, že vie, čo 229 00:10:35,800 --> 00:10:38,550 -Lcs50 prostriedky. 230 00:10:38,550 --> 00:10:43,240 Mohli by sme dať cs50.c súbor, a potom by ste mohli skompilovať, riekol: 231 00:10:43,240 --> 00:10:49,050 Rinčať hello.c cs50.c, a potom by si spustiteľný tým 232 00:10:49,050 --> 00:10:50,350 tieto dva súbory dohromady. 233 00:10:50,350 --> 00:10:56,520 Je známe, že-lcs50 znamená cs50.c cez v nejakého adresára, ktoré sme uvedené v 234 00:10:56,520 --> 00:10:58,350 Vaše spotrebiče. 235 00:10:58,350 --> 00:11:04,290 Takže ak by ste chceli cs51.c byť upřesnitelný by len povedať-lcs51, 236 00:11:04,290 --> 00:11:06,760 potom by sme tiež potrebné, aby ju v tomto adresári, takže vie, kde sa 237 00:11:06,760 --> 00:11:08,636 pozrite sa na to. 238 00:11:08,636 --> 00:11:10,510 ALI: Aká bola vaša otázka? 239 00:11:10,510 --> 00:11:13,975 >> SPEAKER 7: Prečo máte odkaz na CS50 240 00:11:13,975 --> 00:11:18,940 ak - wasn'ta to kopírovať / vložiť v prvom kroku, keď pre-spracovaných to? 241 00:11:18,940 --> 00:11:19,700 ALI: Chcete, aby sa to? 242 00:11:19,700 --> 00:11:20,880 ROB: Iste. 243 00:11:20,880 --> 00:11:28,028 Takže cs50.h súbor je oddelený od cs50.c súboru C. 244 00:11:28,028 --> 00:11:33,652 Už ste dostali fungovať prototypov v triede? 245 00:11:33,652 --> 00:11:34,350 Dobre. 246 00:11:34,350 --> 00:11:40,255 Takže v podstate, je súbor cs50.h sa len tak skopírovať a vložiť - 247 00:11:40,255 --> 00:11:44,040 ALI: Myslíte si, chlapci, čo sú podpisy? 248 00:11:44,040 --> 00:11:46,580 Dobre, tak celkom veľa, keď sa pozriete na - 249 00:11:46,580 --> 00:11:50,530 ROB: Poďme predstierať, cs50.h tam nie je. 250 00:11:50,530 --> 00:11:52,960 Teraz tento súbor - 251 00:11:52,960 --> 00:11:56,090 robíte string s = GetString. 252 00:11:56,090 --> 00:11:59,350 Ale keď sme sa dostali do tohto bodu v kóde, nemá potuchy, čo 253 00:11:59,350 --> 00:12:00,230 GetString je. 254 00:12:00,230 --> 00:12:02,600 Vie, že je to funkcia, pretože voláte ho. 255 00:12:02,600 --> 00:12:06,500 Ale to nevie, že je to vlastne mal vrátiť reťazec. 256 00:12:06,500 --> 00:12:14,530 Tak ako som povedal, string s = GetInt, to nedáva žiadny zmysel, pretože 257 00:12:14,530 --> 00:12:17,530 sa prihlasujete celé číslo na reťazec. 258 00:12:17,530 --> 00:12:22,270 Ale to nevie, že GetString nemá zmysel, pretože to nie je 259 00:12:22,270 --> 00:12:24,380 vedia, že GetString vráti reťazec. 260 00:12:24,380 --> 00:12:28,220 Takže to, čo hovorí, cs50.h je niečo ako toto. 261 00:12:33,070 --> 00:12:37,750 ALI: Takže to, čo Rob je písanie je, že je to sľub tak, že to bude 262 00:12:37,750 --> 00:12:41,280 túto funkciu s názvom GetString. 263 00:12:41,280 --> 00:12:45,250 ROB: To je všetko, cs50.h je kopírovanie a vkladanie sem, rovnako 264 00:12:45,250 --> 00:12:47,620 ako GetInt a všetky tie veci. 265 00:12:47,620 --> 00:12:51,520 A to len hovorí, že GetString sa vráti reťazec. 266 00:12:51,520 --> 00:12:54,830 Nevieš, ako sa to doposiaľ vykonaná, ale keď sme sa k tejto línii, teraz 267 00:12:54,830 --> 00:12:57,760 vie, že správne vráti reťazec. 268 00:12:57,760 --> 00:13:03,022 >> SPEAKER 9: Takže, ak by sme nemali obťažovať s # include veci a namiesto toho 269 00:13:03,022 --> 00:13:07,130 len písali prototyp pre tie, ktoré sme sa vlastne bude používať? 270 00:13:07,130 --> 00:13:07,330 ROB: Jo. 271 00:13:07,330 --> 00:13:08,870 Tak poďme spustiť tento. 272 00:13:08,870 --> 00:13:09,110 SPEAKER 9: Je to tak? 273 00:13:09,110 --> 00:13:13,670 Takže, v predvolenom nastavení, by to urobiť-l CS50 len preto, že -. 274 00:13:13,670 --> 00:13:14,740 ROB: - výraz. 275 00:13:14,740 --> 00:13:19,370 ALI: Áno, pretože ako ste povedal, že je to v make súboru. 276 00:13:19,370 --> 00:13:24,040 ROB: cs50.h tiež sa stane byť typedef char * na reťazec. 277 00:13:24,040 --> 00:13:26,950 Môžete úplne ignorovať, čo to znamená pre túto chvíľu. 278 00:13:26,950 --> 00:13:31,430 Ale to je tiež niečo zahrnutá do cs50.h. 279 00:13:31,430 --> 00:13:34,230 Takže teraz veci fungujú úplne v poriadku. 280 00:13:34,230 --> 00:13:40,770 To beží presne rovnaké, ako to bolo, keď sme sa jednoducho musel 281 00:13:40,770 --> 00:13:45,120 # Include. 282 00:13:45,120 --> 00:13:49,200 A tak sa stane, vrátane cs50.h k cez-sú veci, ktoré potrebujete - 283 00:13:49,200 --> 00:13:53,080 ako, nemusíte používať GetInt v tomto programe, ale to nevadí. 284 00:13:53,080 --> 00:13:55,010 Je to jednoducho ignorovať. 285 00:13:55,010 --> 00:14:02,400 ALI: A potom, keď budete robiť-lcs50 sem a tu, čo sa deje 286 00:14:02,400 --> 00:14:05,290 , Je, že je to s aktuálne implementovateľné kód. 287 00:14:05,290 --> 00:14:07,530 Tak to je, kde to vlastne je, robí - 288 00:14:07,530 --> 00:14:09,090 písanie kódu pre GetString. 289 00:14:09,090 --> 00:14:11,180 Takže to nie je len sľub už. 290 00:14:11,180 --> 00:14:16,520 To je vlastne prechádza a pri reťazec a všetko to okolo. 291 00:14:16,520 --> 00:14:17,600 Zmysel? 292 00:14:17,600 --> 00:14:22,640 Otázky? Dobrá. 293 00:14:22,640 --> 00:14:24,466 Skvelé fazuľa. 294 00:14:24,466 --> 00:14:27,630 >> ROB: Teraz môžeme prejsť k skutočnej kódu. 295 00:14:27,630 --> 00:14:28,780 ALI: Dobre. 296 00:14:28,780 --> 00:14:33,340 Takže tu je prvý problém. 297 00:14:33,340 --> 00:14:36,910 Tak to hovorí, že napísať program, ktorý vyzve užívateľa k malej 298 00:14:36,910 --> 00:14:40,540 list a potom prevádza je na veľké písmená bez použitia bitového súčinu 299 00:14:40,540 --> 00:14:43,590 operácie, ako na ukážkovom výstupe nižšie. 300 00:14:43,590 --> 00:14:48,780 Takže vidíte, môžete spustiť program s / A.out, a potom ste 301 00:14:48,780 --> 00:14:53,320 dám v malej, a potom sa váš program by mal dať svoj kapitál 302 00:14:53,320 --> 00:15:00,590 A. Tak prečo nie vy všetci to skúsiť na CS50 priestory? 303 00:15:00,590 --> 00:15:03,360 Takže vy môžete ísť všetci tu. 304 00:15:03,360 --> 00:15:06,650 A môžete ich odstrániť všetok kód tu. 305 00:15:06,650 --> 00:15:12,140 A potom môžete ísť dopredu a začať písať kód vec. 306 00:15:12,140 --> 00:15:14,590 ROB: Pravdepodobne budete chcieť použiť getchar, ktorá je 307 00:15:14,590 --> 00:15:16,190 zahrnuté do CS50 knižnici. 308 00:15:16,190 --> 00:15:18,770 ALI: Myslím, že by to mohlo byť lepšie, ak si uložíte hornú časť. 309 00:15:21,452 --> 00:15:23,805 Takže možno budete chcieť len zmeniť veci v stredu. 310 00:15:28,710 --> 00:15:29,070 Nehanbite sa a pracovať. 311 00:15:29,070 --> 00:15:30,530 Neváhajte a vzájomne spolupracovať. 312 00:15:30,530 --> 00:15:32,360 ROB: A môžete klásť otázky, ak máte - 313 00:15:32,360 --> 00:15:33,450 >> SPEAKER 10: Čo je to operácia bitový? 314 00:15:33,450 --> 00:15:35,100 ROB: Tak, ignorovať, že pre tento problém. 315 00:15:35,100 --> 00:15:36,330 ALI: Ak neviete, to, že je to dobré. 316 00:15:36,330 --> 00:15:38,300 ROB: Budeme používať v ďalší problém. 317 00:15:38,300 --> 00:15:40,750 Ale ak neviete, čo operátor bitové je, že je to v poriadku. 318 00:15:40,750 --> 00:15:43,575 SPEAKER 10: Je to ako keď ho do ASCII kódu? 319 00:15:43,575 --> 00:15:44,050 ALI: Nie 320 00:15:44,050 --> 00:15:44,750 ROB: Nie 321 00:15:44,750 --> 00:15:46,220 Môžete to urobiť, aby k tomuto problému. 322 00:15:46,220 --> 00:15:48,280 SPEAKER 10: Ako to robíte, že? 323 00:15:48,280 --> 00:15:52,460 Takže keby som mal niekde napísať - 324 00:15:52,460 --> 00:15:54,670 ALI: Alebo niečo na písanie. 325 00:15:54,670 --> 00:15:56,780 ROB: Mohol by som to jednoducho typ do toho. 326 00:15:56,780 --> 00:15:59,045 ALI: Typ hore. 327 00:15:59,045 --> 00:16:01,390 ROB: Oh, ja sedím na mic. 328 00:16:01,390 --> 00:16:10,860 >> Takže, sme videli v prednáške, že ASCII hodnota kapitálu je 65. 329 00:16:10,860 --> 00:16:13,670 A hlavné B bude 66, a tak ďalej. 330 00:16:13,670 --> 00:16:20,860 Takže môžete doslova použiť "A" znamená počet 65. 331 00:16:20,860 --> 00:16:24,600 Rovnako ako je to hodnota 65. 332 00:16:24,600 --> 00:16:30,950 Môžem urobiť niečo ako int x = 100 - "A". A teraz x bude mať hodnotu 333 00:16:30,950 --> 00:16:33,810 100-65. 334 00:16:33,810 --> 00:16:36,708 ALI: Môžete spustiť to a ukázať, že. 335 00:16:36,708 --> 00:16:38,420 No, možno nie. 336 00:16:38,420 --> 00:16:38,600 To nič. 337 00:16:38,600 --> 00:16:40,970 ROB: Musel som vytlačiť. 338 00:16:40,970 --> 00:16:43,730 SPEAKER 10: Ako sa vám ho otočte späť do charakteru? 339 00:16:43,730 --> 00:16:46,800 ALI: Takže ak nie - 340 00:16:46,800 --> 00:16:51,450 stačí donútiť, aby to bolo char, rovná. 341 00:16:51,450 --> 00:16:53,630 ROB: Tak je - 342 00:16:53,630 --> 00:16:58,440 rozdiel medzi char a celé je len z hľadiska veľkosti. 343 00:16:58,440 --> 00:17:01,230 Takže číslo sa stane, aby mohli reprezentovať veci 344 00:17:01,230 --> 00:17:02,600 na, ako, štyri miliardy korún. 345 00:17:02,600 --> 00:17:05,839 Char je len schopný reprezentovať veci až 255. 346 00:17:05,839 --> 00:17:08,390 Ale nie je žiadny rozdiel medzi nimi, iné ako toto. 347 00:17:08,390 --> 00:17:12,339 Takže môžete povedať char c = 65. 348 00:17:12,339 --> 00:17:24,204 To je ekvivalent hovorí char c sa rovná "". 349 00:17:24,204 --> 00:17:25,210 ALI: Oh, nie. 350 00:17:25,210 --> 00:17:26,710 To nie je v skutočnosti uložiť veci. 351 00:17:26,710 --> 00:17:28,130 ROB: Nie, to nemôžeš urobiť, že. 352 00:17:28,130 --> 00:17:31,610 ALI: To je len - 353 00:17:31,610 --> 00:17:34,920 [Stonanie] 354 00:17:34,920 --> 00:17:40,700 >> ROB: Dobre, tak čo Ali práve napísal je program, ktorý ako prvý vytlačí 100 - 355 00:17:40,700 --> 00:17:46,290 'A' ako celé číslo, ktoré bolo 35, ako očakávame, pretože 100 mínus ASCII 356 00:17:46,290 --> 00:17:48,580 hodnota je 65. 357 00:17:48,580 --> 00:17:54,100 Potom vytlačiť pomocou% C, čo znamená, že ju vykladať ako char. 358 00:17:54,100 --> 00:17:57,050 Takže 100 - je 35. 359 00:17:57,050 --> 00:18:00,990 Tlmočenie, že ako znak sa stane, že hash symbol. 360 00:18:00,990 --> 00:18:06,160 Ak sa pozriete na asciitable.com alebo čokoľvek iného, ​​budete vidieť, že 35 je 361 00:18:06,160 --> 00:18:07,410 hash symbol. 362 00:18:09,940 --> 00:18:12,700 ALI: Dobre, iné vysvetlenie o probléme? 363 00:18:16,000 --> 00:18:18,180 Dobre, vy choďte do toho a to potom. 364 00:18:18,180 --> 00:18:20,330 Neváhajte sa opýtať, alebo hovoriť k sebe navzájom. 365 00:18:20,330 --> 00:18:24,390 Alebo, ak ste už urobili, môžete si oddýchnuť. 366 00:18:24,390 --> 00:18:29,640 >> LUCAS: Sú v rovnakej triede, všetky malé písmená v poradí a 367 00:18:29,640 --> 00:18:32,923 tiež veľká sú tiež v poriadku, pretože to je niečo užitočné pre 368 00:18:32,923 --> 00:18:33,990 problém. 369 00:18:33,990 --> 00:18:35,620 ALI: Dobrý postreh, Lucas. 370 00:18:35,620 --> 00:18:37,430 Takže, ste vy všetci si to? 371 00:18:37,430 --> 00:18:37,640 SPEAKER 11: Áno. 372 00:18:37,640 --> 00:18:39,535 To je, ako to urobiť, nie? 373 00:18:39,535 --> 00:18:39,960 ALI: Right. 374 00:18:39,960 --> 00:18:40,415 ROB: Jo. 375 00:18:40,415 --> 00:18:47,270 SPEAKER 11: [Nepočuteľné] 376 00:18:47,270 --> 00:18:48,330 ALI: Dobre. 377 00:18:48,330 --> 00:18:49,350 ROB: Čo je otázka pýta? 378 00:18:49,350 --> 00:18:50,590 Len pre konverziu - 379 00:18:50,590 --> 00:18:52,560 ALI: Previesť na malé písmená veľké. 380 00:18:52,560 --> 00:18:53,100 To je všetko. 381 00:18:53,100 --> 00:18:54,700 ROB: Dobre. 382 00:18:54,700 --> 00:18:56,180 ALI: Mali by sme napísať? 383 00:18:56,180 --> 00:18:59,340 Myslím, že budeme len pozerať na niekoho iného. 384 00:18:59,340 --> 00:19:07,140 ROB: Takže pre tých, ktorí by mohli byť prilepené, tak - 385 00:19:07,140 --> 00:19:15,160 keď mám nejaký char c, a povedzme, že sa stane, že list D. 386 00:19:15,160 --> 00:19:20,760 Takže teraz, ako môžem zistiť, čo písmeno abecedy C je? 387 00:19:20,760 --> 00:19:25,620 Nie D, ale myslím, D sa stane, že štvrtý písmeno abecedy. 388 00:19:25,620 --> 00:19:28,910 A ak začneme počítať od 0, potom je to tretie písmeno abecedy. 389 00:19:28,910 --> 00:19:36,240 Takže ak je 0, B 1, C je 2, D je 3, ako môžem zistiť, int pozícia - 390 00:19:36,240 --> 00:19:40,780 čo pozície abecedy C je v? 391 00:19:40,780 --> 00:19:42,333 Má niekto nejaké nápady? 392 00:19:42,333 --> 00:19:45,440 ALI: Myslím, že všetci kódovanie. 393 00:19:45,440 --> 00:19:46,440 ROB: Čo tá prvá? 394 00:19:46,440 --> 00:19:48,608 SPEAKER 12: Tak čo je, odčítajte ten prvý? 395 00:19:48,608 --> 00:19:49,030 ROB: Jo. 396 00:19:49,030 --> 00:19:49,950 ALI: Jo, úžasné. 397 00:19:49,950 --> 00:19:51,765 Takže by ste mohli urobiť kapitálové D - 398 00:19:51,765 --> 00:19:52,840 oh, prepáč. 399 00:19:52,840 --> 00:19:55,620 Budete mať charakter a odpočítať prvý z nich, ako ste povedal. 400 00:19:55,620 --> 00:20:03,940 ROB: D Takže ak je niečo ako 68, a odpočítame, čo je 65, potom dostaneme 401 00:20:03,940 --> 00:20:07,130 3, nám hovorí, že D je tretie písmeno abecedy 402 00:20:07,130 --> 00:20:09,290 od 0. 403 00:20:09,290 --> 00:20:11,310 Takže môžete použiť. 404 00:20:11,310 --> 00:20:13,830 Teraz vieme, čo písmeno abecedy, pokiaľ ide o 405 00:20:13,830 --> 00:20:16,060 veľké písmená, alebo - 406 00:20:16,060 --> 00:20:18,330 by sme mohli urobiť to isté pre malými písmenami prísť na to, čo 407 00:20:18,330 --> 00:20:20,170 malá pozíciu Sme tam 408 00:20:20,170 --> 00:20:25,690 A môžeme použiť, že do tej doby previesť, že na veľké písmená pomocou 409 00:20:25,690 --> 00:20:26,970 veľmi podobný nápad. 410 00:20:31,470 --> 00:20:32,670 Opýtajte sa na návrhy? 411 00:20:32,670 --> 00:20:35,810 >> ALI: Páči sa vám chlapci - počkaj, ja neviem, ako ďaleko ste sa. 412 00:20:35,810 --> 00:20:40,060 Väčšina z vás urobil, ste stále ešte pracuje, ste uviazol? 413 00:20:40,060 --> 00:20:42,020 Vy môžete kričať - 414 00:20:42,020 --> 00:20:42,330 prilepené. 415 00:20:42,330 --> 00:20:43,210 Jedna osoba sa zasekol. 416 00:20:43,210 --> 00:20:43,560 Cool. 417 00:20:43,560 --> 00:20:44,700 Mám tendenciu byť prilepené, taky. 418 00:20:44,700 --> 00:20:45,415 SPEAKER 13: Ja som urobil. 419 00:20:45,415 --> 00:20:46,410 ALI: Hotovo? 420 00:20:46,410 --> 00:20:47,480 Dobre. 421 00:20:47,480 --> 00:20:47,935 Hotovo. 422 00:20:47,935 --> 00:20:49,300 SPEAKER 13: [Nepočuteľné] 423 00:20:49,300 --> 00:20:50,600 ALI: Jo, v pohode. 424 00:20:50,600 --> 00:20:53,720 Ste kontrolu, že je to v malých písmen forme? 425 00:20:53,720 --> 00:20:56,730 Dobre, v pohode. 426 00:20:56,730 --> 00:20:59,882 Kde sú ostatní ľudia? 427 00:20:59,882 --> 00:21:06,140 Bolo to náznak pomoci, ako un-prilepenie sami? 428 00:21:06,140 --> 00:21:09,778 SPEAKER 14: Nie tak celkom, ale len preto, že, ja neviem, ja nie som 429 00:21:09,778 --> 00:21:11,590 trávením to ešte. 430 00:21:11,590 --> 00:21:12,640 ALI: Dobre, v pohode. 431 00:21:12,640 --> 00:21:13,431 Chcete vyskúšať - 432 00:21:13,431 --> 00:21:16,140 alebo chceš ísť a pohovoriť si? 433 00:21:16,140 --> 00:21:18,590 >> ROB: To, čo som chcel povedať, je - 434 00:21:18,590 --> 00:21:19,890 tak pomocou tejto. 435 00:21:19,890 --> 00:21:22,650 Chápete, ako máme, čo pozície abecedy 436 00:21:22,650 --> 00:21:24,820 list je v? 437 00:21:24,820 --> 00:21:30,616 SPEAKER 14: Dobre, takže keď dáte veci do jednoduchých úvodzoviek, 438 00:21:30,616 --> 00:21:35,030 , Ktorý vracia číslo? 439 00:21:35,030 --> 00:21:37,100 ROB: Áno. 440 00:21:37,100 --> 00:21:40,840 To bude preložený do ASCII hodnoty, ktorú predstavuje. 441 00:21:40,840 --> 00:21:43,350 Takže chceš ísť do ASCII tabuľky, alebo čo to je? 442 00:21:46,456 --> 00:21:47,840 ALI: Len jeden z nich? 443 00:21:47,840 --> 00:21:49,970 ROB: Jo. 444 00:21:49,970 --> 00:21:55,270 Takže keď dáte niektorú z týchto symbolov, ignorovanie veľa z - 445 00:21:55,270 --> 00:21:56,450 ALI: [Nepočuteľné] 446 00:21:56,450 --> 00:21:57,620 ROB: Oh, pomocou kurzora myši. 447 00:21:57,620 --> 00:21:58,380 ALI: Jo. 448 00:21:58,380 --> 00:21:59,690 To bolo vzrušujúce. 449 00:21:59,690 --> 00:22:04,050 ROB: Takže, ignorovanie týchto ty na ľavici, ktoré sú špeciálne symboly - 450 00:22:04,050 --> 00:22:08,520 keď dáte niektorú z týchto symbolov v jednoduchých úvodzovkách, potom to bude 451 00:22:08,520 --> 00:22:11,620 preložený do tejto hodnoty na ľavej strane. 452 00:22:11,620 --> 00:22:13,660 ALI: Jedná sa o desatinné číslo na to. 453 00:22:13,660 --> 00:22:19,710 Je to ako stretnutie s 65, B na 66, a všimnite si, že sú všetci v 454 00:22:19,710 --> 00:22:21,540 v abecednom poradí, ktorý robí rozdiel. 455 00:22:21,540 --> 00:22:27,110 Takže, ako Rob hovorí, pred, v tomto kóde, sme boli výpočtu vzdialenosti od 456 00:22:27,110 --> 00:22:29,610 prvé písmeno, samo o sebe. 457 00:22:29,610 --> 00:22:32,820 A že to bude rovnaké, či už je to veľká alebo malé písmená. 458 00:22:32,820 --> 00:22:38,390 ROB: Takže keď sme D, 68 mínus A, 65, dostaneme 3. 459 00:22:38,390 --> 00:22:42,370 Vzhľadom k tomu, D je tri polohy do abecedy. 460 00:22:42,370 --> 00:22:46,680 ALI: Tak ako by ste preložiť, že viac než nájsť malý d? 461 00:22:46,680 --> 00:22:47,240 ROB: Jo. 462 00:22:47,240 --> 00:22:52,230 Takže ak som 3 teraz, viem, že chcem ísť tri listy do - 463 00:22:52,230 --> 00:22:54,830 sme náhodou ísť malé písmená teraz, ale povedzme, že chcem ísť tri 464 00:22:54,830 --> 00:22:58,610 pozície do malými stránku veci. 465 00:22:58,610 --> 00:23:01,400 Tak ako to mám urobiť, že? 466 00:23:01,400 --> 00:23:04,240 Viem, že malá je 97. 467 00:23:04,240 --> 00:23:07,535 Tak ako to mám nájsť tri polohy do malými písmenami? 468 00:23:10,461 --> 00:23:11,934 >> SPEAKER 15: Mám jednu otázku skutočne. 469 00:23:11,934 --> 00:23:12,425 ALI: Jo, pokojne. 470 00:23:12,425 --> 00:23:14,880 SPEAKER 15: Tak toto, to nezáleží na tom, pokiaľ viem toto stanovisko, 471 00:23:14,880 --> 00:23:16,360 rád, ja nepotrebujem tejto tabuľky. 472 00:23:16,360 --> 00:23:16,840 ROB: Nie. 473 00:23:16,840 --> 00:23:19,380 Už nikdy sa nebudete musieť použiť niektorý z týchto čísel. 474 00:23:19,380 --> 00:23:23,670 A to je dôležitý bod v rámci svojich programov, ktoré by ste mali nikdy tvrdá 475 00:23:23,670 --> 00:23:25,500 kód niektorý z týchto konštánt. 476 00:23:25,500 --> 00:23:31,190 Používajte 'A'. nikdy nepoužívajte 65 alebo 97. 477 00:23:31,190 --> 00:23:34,370 ALI: Tí sa nazývajú magická čísla, a sú naozaj mätúce. 478 00:23:34,370 --> 00:23:37,080 Rovnako ako, keď ste ladenie kódu, môžete si spomenúť, čo 479 00:23:37,080 --> 00:23:38,020 ste použili je pre. 480 00:23:38,020 --> 00:23:40,770 A pre nás triedenie kódu, budeme naozaj vedieť, čo 481 00:23:40,770 --> 00:23:41,750 používate je pre. 482 00:23:41,750 --> 00:23:44,815 Takže je lepšie, ak si skutočne používať znaky, takže to robí 483 00:23:44,815 --> 00:23:46,065 väčší zmysel pre ľudí. 484 00:23:49,460 --> 00:23:51,160 Dobre, nejaké ďalšie otázky? 485 00:23:51,160 --> 00:23:52,975 Sú viac ľudí urobiť, alebo - 486 00:23:56,243 --> 00:23:57,493 Myslím, že sme si to overiť. 487 00:23:59,870 --> 00:24:02,410 Je to naozaj strašidelné, že môžete vidieť kód ľudí. 488 00:24:02,410 --> 00:24:04,970 ROB: Jo. 489 00:24:04,970 --> 00:24:06,410 Nemáme k tomu, že tu. 490 00:24:06,410 --> 00:24:08,380 Nevieme, mená ľudí, a to buď. 491 00:24:08,380 --> 00:24:10,940 ALI: Ach jo, dobre, že je to lepšie, takže budeme mať ešte viac nestranný 492 00:24:10,940 --> 00:24:14,820 namiesto toho len náhodne vyberaní niekoho. 493 00:24:14,820 --> 00:24:15,360 Nebojte sa. 494 00:24:15,360 --> 00:24:16,265 Ja to neurobím. 495 00:24:16,265 --> 00:24:20,396 Ak máte náhodné veci o - Nevadí. 496 00:24:20,396 --> 00:24:20,870 Dobre. 497 00:24:20,870 --> 00:24:22,556 Ako sa ľudia robia? 498 00:24:22,556 --> 00:24:26,950 >> SPEAKER 17: Tak deviaty linka by mala vytlačiť znak? 499 00:24:26,950 --> 00:24:27,430 ROB: Áno. 500 00:24:27,430 --> 00:24:27,910 ALI: Jo. 501 00:24:27,910 --> 00:24:30,770 Takže ak ste ísť dole - 502 00:24:30,770 --> 00:24:32,200 ROB: Oh, nemôžem. 503 00:24:32,200 --> 00:24:35,400 ALI: Uvidíte, že ju vytlačiť hash symbol. 504 00:24:35,400 --> 00:24:37,180 SPEAKER 17: Oh, dobre. 505 00:24:37,180 --> 00:24:41,290 ROB: Myslím, že iný spôsob, ako sa môžete pozerať na veci je, že to vytlačením dvoch 506 00:24:41,290 --> 00:24:42,540 znakov. 507 00:24:44,500 --> 00:24:47,740 Prvý z nich sme tlač je písmeno A. 508 00:24:47,740 --> 00:24:51,610 Ten budúci sa tlačíte, je iba 65. 509 00:24:51,610 --> 00:24:54,450 Je to pravdepodobne na mňa kričať pre tieto prípady. 510 00:24:54,450 --> 00:25:00,060 Takže keď sme len spustiť to, zistíte, že to vytlačí oba časy. 511 00:25:00,060 --> 00:25:02,070 Vzhľadom k tomu, žiadame jej samej. 512 00:25:02,070 --> 00:25:07,840 Pýtame sa ho vytlačiť list A. A potom žiadame, aby vytlačiť 513 00:25:07,840 --> 00:25:13,820 číslo 65 interpretovaná ako charakter, ktorý je to isté. 514 00:25:13,820 --> 00:25:15,100 ALI: Máš niečo na srdci? 515 00:25:15,100 --> 00:25:18,150 Oh, len si robím srandu, prepáč. 516 00:25:18,150 --> 00:25:20,640 Dobre, ako sú ľudia - 517 00:25:20,640 --> 00:25:22,280 ROB: Môžeme sa len prechádzať cez neho. 518 00:25:22,280 --> 00:25:25,250 >> ALI: Dobre, takže ako začať? 519 00:25:25,250 --> 00:25:26,500 Každý, kto? 520 00:25:28,030 --> 00:25:34,486 Ako náznak, musíme niečo od ľudí, od typers. 521 00:25:34,486 --> 00:25:36,850 SPEAKER 18: [Nepočuteľné] 522 00:25:36,850 --> 00:25:38,290 ALI: Ach jo, výzva, perfektné. 523 00:25:38,290 --> 00:25:40,660 Takže budeme písať - 524 00:25:40,660 --> 00:25:41,670 čo napíšeme? 525 00:25:41,670 --> 00:25:43,660 Každý, kto? 526 00:25:43,660 --> 00:25:46,480 Alebo mám jednoducho zadajte ho? 527 00:25:46,480 --> 00:25:47,530 Sme vlastne zadaním - 528 00:25:47,530 --> 00:25:48,430 ROB: Iste. 529 00:25:48,430 --> 00:25:50,990 ALI: Takže budeme písať printf výzvu, takže môžeme byť 530 00:25:50,990 --> 00:25:54,810 páči, daj mi znak. 531 00:25:54,810 --> 00:25:55,710 Dobre, a čo potom? 532 00:25:55,710 --> 00:25:56,664 Prečo to robí, že? 533 00:25:56,664 --> 00:25:57,620 ROB: Ja neviem. 534 00:25:57,620 --> 00:26:00,070 ALI: Dobre. 535 00:26:00,070 --> 00:26:03,680 Takže teraz, hovoríme im, aby nám charakter. 536 00:26:03,680 --> 00:26:07,064 Ale ako sa vlastne dostať, že znak? 537 00:26:07,064 --> 00:26:10,060 SPEAKER 19: Použitie 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 Dobre, takže aký je rozdiel medzi reťazcami a char? 541 00:26:17,038 --> 00:26:20,020 SPEAKER 19: Reťazce sú rady, ako pole znakov. 542 00:26:20,020 --> 00:26:21,910 >> ALI: Cool, jo. 543 00:26:21,910 --> 00:26:25,550 Takže v tomto problém, my len je potrebné zvážiť jeden znak v čase, tak 544 00:26:25,550 --> 00:26:28,400 Sme len robiť getchar pre túto inštanciu. 545 00:26:28,400 --> 00:26:32,400 ROB: Mohli by sme zaviesť funkciu, ak by sme chceli, aby sa celý reťazec 546 00:26:32,400 --> 00:26:35,750 a šiel cez reťazec a zmenil všetky malé písmená na veľké a všetkým 547 00:26:35,750 --> 00:26:37,380 veľká na malé písmená. 548 00:26:37,380 --> 00:26:39,170 Ale tu, my sme len pýtam vás jeden znak. 549 00:26:39,170 --> 00:26:42,800 ALI: Takže teraz máme charakter tu, ale potom musíme uložiť. 550 00:26:42,800 --> 00:26:45,070 Takže pridáme char c - čo? 551 00:26:45,070 --> 00:26:46,070 SPEAKER 20: Definujte premennú. 552 00:26:46,070 --> 00:26:48,100 ALI: Jo, presne tak. 553 00:26:48,100 --> 00:26:49,585 Takže máme náš charakter. 554 00:26:49,585 --> 00:26:51,766 ROB: Myslím, že by ste mohli byť - 555 00:26:51,766 --> 00:26:55,630 ste len tri priestory, v, čo je dôvod, prečo to kričí na teba. 556 00:26:55,630 --> 00:27:01,300 >> ALI: Dobre, v pohode, teraz, keď sme tabulátora sadu, čo sa bude diať ďalej? 557 00:27:01,300 --> 00:27:02,550 Aký je ďalší krok? 558 00:27:05,590 --> 00:27:08,870 ROB: Aký je náš program by mal urobiť, je zmeniť malé písmená list 559 00:27:08,870 --> 00:27:10,130 veľké písmeno. 560 00:27:10,130 --> 00:27:15,478 Čo keď som náhodou vstúpiť do hash symbol? 561 00:27:15,478 --> 00:27:16,314 Je to - 562 00:27:16,314 --> 00:27:16,732 ALI: Je to dobrý symbol. 563 00:27:16,732 --> 00:27:18,270 Používame ju veľa. 564 00:27:18,270 --> 00:27:21,937 ROB: Je to platné vec, ktorú môžem previesť na veľké písmená forme? 565 00:27:21,937 --> 00:27:23,070 SPEAKER 21: Nie 566 00:27:23,070 --> 00:27:24,070 ALI: Nie 567 00:27:24,070 --> 00:27:24,900 Mali by sme zistiť, že. 568 00:27:24,900 --> 00:27:34,950 Takže sa môže mať if kontrole tak v prípade, že c je väčšia ako 569 00:27:34,950 --> 00:27:37,410 alebo rovnaké, ako malé písmená premennej 'a'- 570 00:27:37,410 --> 00:27:45,490 takže ak sa pozrieme na graf, zistíte, že to musí byť medzi tu, 571 00:27:45,490 --> 00:27:47,670 na 97, a malým písmom. 572 00:27:47,670 --> 00:27:52,110 A to môže byť jeden z nich, a v krokoch až na doraz. 573 00:27:52,110 --> 00:27:55,200 A potom je tu z na 122. 574 00:27:55,200 --> 00:27:58,215 A to je v rozmedzí medzi týmito dvoma hodnotami. 575 00:27:58,215 --> 00:27:59,700 Dáva to zmysel? 576 00:27:59,700 --> 00:28:04,130 ROB: Takže ak c nie je medzi 97 a 122 - 577 00:28:04,130 --> 00:28:09,960 alebo ju nikdy nebudete musieť použiť tieto čísla - ak c nie je medzi "A" a 578 00:28:09,960 --> 00:28:15,110 "Z" a potom to nebolo platný znak pre nás veľké písmená. 579 00:28:15,110 --> 00:28:18,590 ALI: Takže v kódovej forme, môžeme povedať, že ak je c je väčší alebo rovné single 580 00:28:18,590 --> 00:28:19,640 Prípad malé - 581 00:28:19,640 --> 00:28:21,270 wow, ako ste povedal, že? 582 00:28:21,270 --> 00:28:26,900 Dobre, je väčšia než alebo rovné malým písmom "a", a to musí byť vyššie 583 00:28:26,900 --> 00:28:32,250 Malé písmeno "z". Tak to musí byť menšia alebo rovnaká ako malé písmená 'z'. 584 00:28:32,250 --> 00:28:35,300 Sme uistite sa, že je to medzi nimi. 585 00:28:35,300 --> 00:28:38,540 Potom môžeme pokračovať s naším šťastným kódom. 586 00:28:41,992 --> 00:28:43,360 Čo? 587 00:28:43,360 --> 00:28:46,860 ROB: Tak som si budeme len držať pýtať, či sme náhodou nemali 588 00:28:46,860 --> 00:28:48,250 malé písmeno. 589 00:28:48,250 --> 00:28:51,130 ALI: Oh, som si nebol vedomý, že. 590 00:28:51,130 --> 00:28:52,820 Prepáčte. 591 00:28:52,820 --> 00:28:58,100 >> Dobre, takže ak budeme robiť, čo Rob hovorí, a uistite sa, že - 592 00:28:58,100 --> 00:29:02,068 môžeme udržať požiadal ich, potom to, čo by sme mali robiť? 593 00:29:02,068 --> 00:29:02,994 SPEAKER 22: [Nepočuteľné] 594 00:29:02,994 --> 00:29:03,530 ROB: Jo. 595 00:29:03,530 --> 00:29:05,630 Mali by sme použiť nejaký slučky. 596 00:29:05,630 --> 00:29:12,900 Vzhľadom k tomu, že užívateľ môže zadať niečo neplatný nevýslovnej množstvo krát. 597 00:29:12,900 --> 00:29:14,990 Takže môžete použiť while. 598 00:29:14,990 --> 00:29:18,870 Účelom do-while - 599 00:29:18,870 --> 00:29:21,340 doslovne, jediný čas v celom vašom živote, kedy budete používať do- 600 00:29:21,340 --> 00:29:24,780 while je, keď sa pýtate na vstup od užívateľa. 601 00:29:24,780 --> 00:29:28,260 Takže skutočnosť, žiadame pre vstup užívateľa je tu náznak, že by sme mali 602 00:29:28,260 --> 00:29:29,660 použiť do-while. 603 00:29:29,660 --> 00:29:30,780 A prečo to je? 604 00:29:30,780 --> 00:29:34,270 Vzhľadom k tomu, do-while loop vždy sa stane, aspoň raz. 605 00:29:34,270 --> 00:29:40,260 Takže keď sa pýtate na vstup od užívateľa, budete chcieť, aby sa stalo aspoň raz. 606 00:29:40,260 --> 00:29:42,750 A potom, keď sa veci boli úspešní, môžete pokračovať. 607 00:29:42,750 --> 00:29:45,130 Ak nie, vráťte sa späť a opäť pýtať. 608 00:29:45,130 --> 00:29:48,950 >> ALI: Takže inými slovami, musíme urobiť bod. 609 00:29:48,950 --> 00:29:51,130 A tak je to hovorí to niečo urobiť. 610 00:29:51,130 --> 00:29:53,890 Tak printf - 611 00:29:53,890 --> 00:29:57,490 vytlačiť vyhlásenie k rýchlej, a tiež získať charakter, alebo sa snaží 612 00:29:57,490 --> 00:29:58,780 získať charakter. 613 00:29:58,780 --> 00:30:03,410 A potom musíme skontrolovať, či je skutočne to urobil správne. 614 00:30:03,410 --> 00:30:07,730 Takže potom pridáme podmienky, potom hovoríme, zatiaľ čo, a potom máme 615 00:30:07,730 --> 00:30:08,980 podmienený príkaz. 616 00:30:11,600 --> 00:30:14,730 ROB: Ale teraz sme obrátil myšlienky. 617 00:30:14,730 --> 00:30:18,940 Teraz sme si pôvodne hovorili, ak c je v tomto rozsahu, je platný. 618 00:30:18,940 --> 00:30:23,340 Teraz chceme zvrátiť to a povedať, či c nie je v tomto rozsahu, potom 619 00:30:23,340 --> 00:30:25,020 potrebujete zálohovať robiť veci znovu. 620 00:30:25,020 --> 00:30:25,900 ALI: Oh, yeah. 621 00:30:25,900 --> 00:30:31,720 ROB: Takže keď to nie je pravda, chceme sa vrátiť a 622 00:30:31,720 --> 00:30:34,470 požiadať o ďalší znak. 623 00:30:34,470 --> 00:30:36,880 Má každý vidieť, že? 624 00:30:36,880 --> 00:30:38,830 Otázky na to? 625 00:30:38,830 --> 00:30:39,400 Dobre. 626 00:30:39,400 --> 00:30:43,480 >> Takže teraz máme platný znak, ktorý môžeme veľké písmená. 627 00:30:43,480 --> 00:30:47,150 ALI: Tak čo ďalší krok pre uppercasing to? 628 00:30:49,994 --> 00:30:51,890 SPEAKER 23: Pridať 32. 629 00:30:51,890 --> 00:30:52,600 ALI: Pridáte - 630 00:30:52,600 --> 00:30:54,150 ľúto, čo? 631 00:30:54,150 --> 00:30:56,580 SPEAKER 23: Nemožno stačí pridať 32? 632 00:30:56,580 --> 00:31:02,360 ROB: Takže áno, nie v zmysle magických čísel. 633 00:31:02,360 --> 00:31:04,610 Tie by mali byť pomocou single-quote veci. 634 00:31:04,610 --> 00:31:06,450 SPEAKER 23: Dobre, dobre - 635 00:31:06,450 --> 00:31:07,250 ROB: Ale môžete si 32 - 636 00:31:07,250 --> 00:31:11,870 ALI: Ako ste sa dostal číslo 32, myslím, že je to, čo hovoríme. 637 00:31:11,870 --> 00:31:18,060 SPEAKER 23: [Nepočuteľné] 638 00:31:18,060 --> 00:31:22,158 Rob: Takže môžeme prísť s číslom 32 spoločne - 639 00:31:22,158 --> 00:31:24,468 SPEAKER 23: [Nepočuteľné]? 640 00:31:24,468 --> 00:31:24,930 ROB: Jo. 641 00:31:24,930 --> 00:31:28,540 Ale ak budeme robiť to v dvoch krokoch sme robili pred s 642 00:31:28,540 --> 00:31:29,950 polohy veci. 643 00:31:29,950 --> 00:31:36,910 Takže pozície v abecede, ktoré c zhodou okolností je c mínus malými písmenami 644 00:31:36,910 --> 00:31:42,360 "". Takže keď sme vstúpili do malé písmená "d", pozícia bude 3. 645 00:31:42,360 --> 00:31:46,490 A teraz chceme, aby sa veci na veľké písmená rad vecí. 646 00:31:46,490 --> 00:31:55,376 Takže teraz náš nový c bude základnom imaní "'plus pozície. 647 00:31:55,376 --> 00:32:00,090 Tak sa ľudia vidia, ako sa to nás privádza - 648 00:32:00,090 --> 00:32:04,140 ideme z malým rozsahu, presnú hĺbku sme do toho 649 00:32:04,140 --> 00:32:07,650 rozsah, a ísť dole do veľkým rozsahom, a ísť tak ďaleko 650 00:32:07,650 --> 00:32:10,610 do nej znovu, čo bude mať rovnaký charakter, ale teraz 651 00:32:10,610 --> 00:32:12,550 veľkými písmenami. 652 00:32:12,550 --> 00:32:16,490 ALI: A pre ľudí, ktorí boli zmätení tým, ako práve povedal 32, 653 00:32:16,490 --> 00:32:20,390 v podstate spojil obe tieto do jedného príkazu. 654 00:32:20,390 --> 00:32:24,550 Takže rovnocenný spôsob písania to, že vieš to jednoducho 655 00:32:24,550 --> 00:32:28,190 náhradné pozície, c mínus "," a dal to tu. 656 00:32:28,190 --> 00:32:31,330 Takže to, čo urobil, ja nie - 657 00:32:31,330 --> 00:32:44,510 char NewCo = veľkými písmenami "A" a c mínus malá "". A pretože algebry, 658 00:32:44,510 --> 00:32:47,090 sa môžete pohybovať okolo nich. 659 00:32:47,090 --> 00:32:52,960 Môžete tiež povedať, že sa môžete pohybovať okolo tak char NewCo = veľkými písmenami "A" 660 00:32:52,960 --> 00:32:55,620 mínus malé písmená "a" Plus C. 661 00:32:55,620 --> 00:32:58,650 A to, všimnete si, či sa vrátime do grafu. 662 00:33:01,160 --> 00:33:06,300 Máme veľká je 65 a malé písmená je 97. 663 00:33:06,300 --> 00:33:09,800 Tak 65 až 97 je -32. 664 00:33:09,800 --> 00:33:10,020 >> Ahoj. 665 00:33:10,020 --> 00:33:10,930 Posaďte sa. 666 00:33:10,930 --> 00:33:12,180 Oh. 667 00:33:16,240 --> 00:33:17,980 Môžete sedieť tu. 668 00:33:17,980 --> 00:33:20,805 Cool, v poriadku, úžasné. 669 00:33:20,805 --> 00:33:22,390 Vitajte v sekcii. 670 00:33:22,390 --> 00:33:25,110 Určite ste si všimli, že rozdiel je 32. 671 00:33:25,110 --> 00:33:28,150 Tak to je, kde dostal toto číslo. 672 00:33:28,150 --> 00:33:32,140 Ale nie je to, ako Rob hovorí, že najlepší spôsob, ako to urobiť, pretože to má divný 673 00:33:32,140 --> 00:33:35,260 magické číslo zmätok. 674 00:33:35,260 --> 00:33:38,710 ROB: Mali by ste používať kapitál mínus malá. 675 00:33:38,710 --> 00:33:43,045 Nemali by ste používať len rovno 32. 676 00:33:43,045 --> 00:33:45,020 SPEAKER 24: Prečo je to, že raz? 677 00:33:45,020 --> 00:33:49,860 Prečo by ste nemali používať 32? 678 00:33:49,860 --> 00:33:55,630 ALI: Ak by sme to urobili, bolo by to char NewCo = -32 + c 679 00:33:55,630 --> 00:34:00,030 A ak nechcete vidieť žiadne zo zvyšku toho, ak je to všetko preč, a tie 680 00:34:00,030 --> 00:34:04,720 jednoducho vidieť tento jediný riadok, tak ako viete, čo je negatívny 32 je? 681 00:34:04,720 --> 00:34:07,000 Je to len na mieste. 682 00:34:07,000 --> 00:34:10,360 ROB: Takže váš program bude fungovať úplne v poriadku. 683 00:34:10,360 --> 00:34:12,960 Je to len štýl vec. 684 00:34:12,960 --> 00:34:17,760 Niekto bude v a čítanie kódu, sú ako čo to znamená 32? 685 00:34:17,760 --> 00:34:18,889 Možno, že nie - 686 00:34:18,889 --> 00:34:22,090 Asi by som to okamžite uvedomiť, že 32 sa stane, že je 687 00:34:22,090 --> 00:34:25,100 Rozdiel medzi malým písmenom a veľkým písmenom, hoci 688 00:34:25,100 --> 00:34:26,510 budeme používať túto skutočnosť v ďalšom probléme. 689 00:34:30,210 --> 00:34:31,610 32 je - 690 00:34:31,610 --> 00:34:38,579 môžete zanechať komentár vyššie to hovorí 32 je rozdiel medzi 691 00:34:38,579 --> 00:34:45,290 "A" a "." Ale v tomto bode, prečo nie len používať "A" a "A", a vy 692 00:34:45,290 --> 00:34:47,469 nepotrebujú komentár a potom. 693 00:34:47,469 --> 00:34:52,739 >> ALI: Je to len spôsob, ako nad ním sú oveľa čistejšie, style-múdry. 694 00:34:52,739 --> 00:34:54,590 A tak, pretože ste práve začínate programovanie - 695 00:34:54,590 --> 00:34:57,775 alebo Myslím, že nie, pretože si hacker edi - nevadí. 696 00:34:57,775 --> 00:34:59,420 Je to len dobrý spôsob, ako mať - 697 00:34:59,420 --> 00:35:01,230 je lepšie mať lepší štýl. 698 00:35:01,230 --> 00:35:02,850 Je to jednoduchšie pre ostatných ľudí na čítanie. 699 00:35:02,850 --> 00:35:06,560 ROB: Nikdy by ste nemali mať na pamäti, ASCII tabuľku, kedy. 700 00:35:06,560 --> 00:35:09,505 Tie by mali len byť schopní používať jednotlivé úvodzovkami. 701 00:35:12,390 --> 00:35:12,730 Otázky? 702 00:35:12,730 --> 00:35:13,980 ALI: Všetci dobre? 703 00:35:16,020 --> 00:35:16,430 ROB: Dobre. 704 00:35:16,430 --> 00:35:23,320 Takže ďalší problém je značný. 705 00:35:23,320 --> 00:35:24,660 Takže ďalší problém sa nás pýta - 706 00:35:27,880 --> 00:35:31,570 ALI: Ďalším problémom je žiada pre nás urobiť to isté, ale na použitie 707 00:35:31,570 --> 00:35:32,640 Bitové operátory. 708 00:35:32,640 --> 00:35:35,170 ROB: A samozrejme, že sme nevideli bitové operátory ešte. 709 00:35:35,170 --> 00:35:38,874 Takže budeme teraz diskutovať o nich. 710 00:35:38,874 --> 00:35:39,540 ALI: Budete nadšení. 711 00:35:39,540 --> 00:35:41,490 Sú super zábava. 712 00:35:41,490 --> 00:35:47,927 >> ROB: Takže pravidelné subjekty, ako sú X plus y, mínus, časy, delenie. 713 00:35:47,927 --> 00:35:50,850 ALI: Zadajte ho v tomto riadku. 714 00:35:50,850 --> 00:35:55,420 ROB: K dispozícii je tiež%, ak ste ho ešte nevideli, ktoré môžete použiť v 715 00:35:55,420 --> 00:35:57,130 Symbol percenta. 716 00:35:57,130 --> 00:35:59,090 Ale nebudeme používať tie pre tento problém. 717 00:35:59,090 --> 00:36:01,400 Chceme použiť bitové operátory. 718 00:36:01,400 --> 00:36:06,250 Teraz pamätajte, priniesli sme ju v prednáške jeden. 719 00:36:06,250 --> 00:36:10,760 Nie som si istý, či sme diskutovali binárne za to. 720 00:36:10,760 --> 00:36:13,710 Ale pamätajte si, že každý jednotlivý počet je zastúpená - 721 00:36:13,710 --> 00:36:14,540 dobre, všetko - 722 00:36:14,540 --> 00:36:17,860 je zastúpená v 1s a 0s v binárnom kóde. 723 00:36:17,860 --> 00:36:27,320 Takže to znamená, že keď hovorím, že číslo 8, ja náhodou viem, že je to 724 00:36:27,320 --> 00:36:30,240 ako, 1000. 725 00:36:30,240 --> 00:36:35,530 Čo bitové operátory, dajte nám urobiť, je pracovať na týchto bitov - 726 00:36:35,530 --> 00:36:37,000 je pôsobiť na týchto bitov priamo. 727 00:36:40,160 --> 00:36:42,490 Teraz som už nejde, pokiaľ ide o osem. 728 00:36:42,490 --> 00:36:45,930 Mám tú česť, pokiaľ ide o 1000, a chcem robiť veci s tými 729 00:36:45,930 --> 00:36:47,670 Jednotlivé bity. 730 00:36:47,670 --> 00:36:52,520 Takže Ali napísal na bitové operátormi tu, ale to je - 731 00:36:55,060 --> 00:36:58,020 Číslo 8 budeme používať ako jeden z našich napríklad čísel. 732 00:36:58,020 --> 00:37:02,980 A binárne reprezentácie je 1000. 733 00:37:02,980 --> 00:37:06,520 Budeme používať iné číslo, 5 - 734 00:37:06,520 --> 00:37:12,070 skutočne využijeme 9 a 5. 735 00:37:12,070 --> 00:37:15,778 A 5 je binárny reprezentácia je 00 - 736 00:37:15,778 --> 00:37:18,380 0101. 737 00:37:18,380 --> 00:37:19,480 ALI: Je každý dobrý na to? 738 00:37:19,480 --> 00:37:21,040 Binárne veci? 739 00:37:21,040 --> 00:37:23,740 To bolo z prvej prednášky? 740 00:37:23,740 --> 00:37:29,070 >> ROB: Takže aj keď si nie ste úplne na vrchole, ako previesť veci 741 00:37:29,070 --> 00:37:31,700 binárne, to nie je úplne dôležité, aby tento problém. 742 00:37:31,700 --> 00:37:36,560 Budeme ju používať, ale budete mať oveľa viac šancí zistiť, ako 743 00:37:36,560 --> 00:37:39,250 rýchlo zase veci do binárne. 744 00:37:39,250 --> 00:37:43,820 Takže pomocou 9 a 5, teraz máme bitové operátory. 745 00:37:43,820 --> 00:37:48,620 Jo, a tiež, 9 a 5, ak je to celé číslo, potom v skutočnosti je to 32 bitov, 746 00:37:48,620 --> 00:37:53,150 čo znamená, že máme ako 0, 0, 0, 0 mnohokrát, potom 747 00:37:53,150 --> 00:37:55,330 101 na samom konci. 748 00:37:55,330 --> 00:37:58,530 To je len preto, že, bez ohľadu na to, čo robíte, v celých, 32 bitov. 749 00:37:58,530 --> 00:38:01,570 Len preto, že budeme potrebovať iba štyri bity predstavujú 9 neznamená, že nie sme 750 00:38:01,570 --> 00:38:05,500 vyčerpania ostatných 27 bitov za púhych 0s. 751 00:38:05,500 --> 00:38:10,110 ALI: Len pre upresnenie, jeden z týchto čísel, ktorá sa nachádza v 0 alebo 1 je bit. 752 00:38:10,110 --> 00:38:11,830 Tento je 4 bity. 753 00:38:11,830 --> 00:38:14,320 Ako tak Rob povedal, že stroje ukladať ich do 32. 754 00:38:14,320 --> 00:38:19,430 Takže oni by mali 32 buď na 0 alebo 1. 755 00:38:19,430 --> 00:38:22,190 V pohode? 756 00:38:22,190 --> 00:38:23,610 ROB: Bitové operátormi. 757 00:38:23,610 --> 00:38:27,310 Prvý z nich, že budeme zaoberať, ideme &. 758 00:38:27,310 --> 00:38:31,260 Takže ak budeme robiť 9 & 5. 759 00:38:31,260 --> 00:38:38,310 Takže to, čo a robí, je, kúsok po kúsku, porovnáva bity dvoch čísel 760 00:38:38,310 --> 00:38:44,860 a ak je obe čísla sú 1, potom sa vráti na 1. 761 00:38:44,860 --> 00:38:50,870 Ak jeden je 0, a druhý je 1, alebo sú obaja 0s, potom vracia 0. 762 00:38:50,870 --> 00:38:53,060 Takže si môžete myslieť na to, ako vaše logické ANDS. 763 00:38:53,060 --> 00:38:59,270 Rovnako ako budete potrebovať pravdivé a pravdivé a vráti hodnotu true, ale je to pravda a false false. 764 00:38:59,270 --> 00:39:02,390 Takže je to to isté, ale teraz máme čo do činenia s tým sa len kúsky. 765 00:39:02,390 --> 00:39:04,910 >> ALI: Takže, keď sa pozriete na to, budete mať 1 - 766 00:39:04,910 --> 00:39:08,490 budete porovnajte je hore, tak to bude 1 a 0. 767 00:39:08,490 --> 00:39:11,036 Myslíte si vy myslíte, že by mohol byť - čo by to hodnotiť to? 768 00:39:11,036 --> 00:39:11,770 SPEAKER 25: 1. 769 00:39:11,770 --> 00:39:12,270 ALI: Cool. 770 00:39:12,270 --> 00:39:16,850 Alebo nie. 771 00:39:16,850 --> 00:39:18,830 Prepáčte. 772 00:39:18,830 --> 00:39:21,290 Takže to, že má zmysel? 773 00:39:21,290 --> 00:39:23,200 Takže to, čo je kolektívne odpoveď znova? 774 00:39:23,200 --> 00:39:24,750 Prepáčte. 775 00:39:24,750 --> 00:39:27,530 Takže ak máme 1 a 0, potom to, čo sa vám? 776 00:39:27,530 --> 00:39:30,260 ROB: Takže si myslíte, že o tom, ako hovoríte, a nahlas. 777 00:39:30,260 --> 00:39:37,550 Ak máte dve bity, x a y, budete potrebovať x a y byť 1, aby pre neho 778 00:39:37,550 --> 00:39:40,770 vyhodnotiť true - alebo, aby pre to, aby vyhodnotenie na 1. 779 00:39:40,770 --> 00:39:45,650 Ak x alebo y je 0, potom to vyhodnotí na false alebo 0. 780 00:39:45,650 --> 00:39:49,165 LUCAS: Je dobré si uvedomiť, že aj 1 je pravda, a 0 je false. 781 00:39:49,165 --> 00:39:51,684 Takže ak máte pravda a false, je to falošný. 782 00:39:51,684 --> 00:39:53,570 Ale potom, pravda a pravda, pravda. 783 00:39:53,570 --> 00:39:55,040 False & false, false. 784 00:39:55,040 --> 00:39:57,650 ALI: Máme pravda & false. 785 00:39:57,650 --> 00:39:58,530 Tak 1 a 0. 786 00:39:58,530 --> 00:40:00,380 Takže znova, je mi ľúto, ešte raz? 787 00:40:00,380 --> 00:40:02,210 SPEAKER 25: Bolo by 0. 788 00:40:02,210 --> 00:40:03,560 Jo, v pohode. 789 00:40:03,560 --> 00:40:05,400 A potom máme 0 & 1 - 790 00:40:05,400 --> 00:40:06,260 SPEAKER 25: [Nepočuteľné] 791 00:40:06,260 --> 00:40:06,680 ALI: Jo. 792 00:40:06,680 --> 00:40:09,790 Takže môžete vždy vymeniť je in - 793 00:40:09,790 --> 00:40:12,150 Potom, ak máte 0 a 0? 794 00:40:12,150 --> 00:40:12,618 SPEAKER 4: 1? 795 00:40:12,618 --> 00:40:14,490 0? 796 00:40:14,490 --> 00:40:16,230 ROB: Takže je to 0. 797 00:40:16,230 --> 00:40:18,870 To neznamená, že obe čísla musia byť rovnaké. 798 00:40:18,870 --> 00:40:22,030 Je to, že obe čísla musí byť 1. 799 00:40:22,030 --> 00:40:26,150 ALI: Takže obaja majú byť pravdivý pre to, aby to bola pravda. 800 00:40:26,150 --> 00:40:26,950 Tak to je 0. 801 00:40:26,950 --> 00:40:30,540 A potom majú 1% 1, čo je? 802 00:40:30,540 --> 00:40:32,640 ROB: Jedná sa o celkom dobré číslo. 803 00:40:32,640 --> 00:40:34,362 Majú všetky možné - 804 00:40:34,362 --> 00:40:36,210 ALI: Dobrá práca, wow. 805 00:40:36,210 --> 00:40:37,080 Dobre, v pohode. 806 00:40:37,080 --> 00:40:39,220 Takže to, že zmysel pre každého? 807 00:40:39,220 --> 00:40:41,770 >> ROB: Takže teraz budeme robiť |. 808 00:40:41,770 --> 00:40:51,650 A to bude veľmi podobné, ale teraz miesto x a y nutnosti 809 00:40:51,650 --> 00:40:54,880 byť 1, aby to byť jeden, teraz je to len x alebo 810 00:40:54,880 --> 00:40:56,360 y musí byť 1. 811 00:40:56,360 --> 00:40:59,580 ALI: Tak 1 | 0 vyhodnotený - 812 00:40:59,580 --> 00:41:00,270 TRIEDA: 1. 813 00:41:00,270 --> 00:41:01,690 ALI: Cool. 814 00:41:01,690 --> 00:41:03,710 0 | 1 vyhodnotený - 815 00:41:03,710 --> 00:41:04,420 TRIEDA: 1. 816 00:41:04,420 --> 00:41:06,726 ALI: Cool, a potom 0 | 0 - 817 00:41:06,726 --> 00:41:07,600 TRIEDA: 0. 818 00:41:07,600 --> 00:41:09,320 ALI: Jo, a potom 1 | 1 - 819 00:41:09,320 --> 00:41:10,180 TRIEDA: 1. 820 00:41:10,180 --> 00:41:12,090 ALI: Cool. 821 00:41:12,090 --> 00:41:14,060 Tak to je ako dva operátormi bitové. 822 00:41:14,060 --> 00:41:15,430 Awesome. 823 00:41:15,430 --> 00:41:16,440 ROB: Takže teraz budeme robiť ^. 824 00:41:16,440 --> 00:41:18,470 ALI: Mali by sme urobiť všetko z nich? 825 00:41:18,470 --> 00:41:20,620 ROB: Jo, pretože si myslím, že budeme používať - 826 00:41:20,620 --> 00:41:22,340 použitie ich všetky. 827 00:41:22,340 --> 00:41:23,150 ALI: Dobre. 828 00:41:23,150 --> 00:41:23,570 Takže - 829 00:41:23,570 --> 00:41:25,540 ROB: Myslím, že nepotrebujeme, aby. 830 00:41:25,540 --> 00:41:31,830 ALI: Tak ^ práce v tom, že musíte mať presne jeden pravdivý a jeden nepravdivý. 831 00:41:31,830 --> 00:41:34,330 ^ Znamená exkluzívny OR. 832 00:41:34,330 --> 00:41:36,650 Takže teraz to nie je - 833 00:41:36,650 --> 00:41:41,220 ak x a y sú obaja 1, je to teraz false. 834 00:41:41,220 --> 00:41:46,920 To je rozdiel medzi ^ a |, je to, že OR, môže mať, ak je x 835 00:41:46,920 --> 00:41:49,440 true alebo y, je to pravda, potom sme v pohode. 836 00:41:49,440 --> 00:41:55,176 Nie, ^ hovorí, že ak x je pravda, musí y byť nepravdivé, alebo inde to nie je pravda. 837 00:41:55,176 --> 00:41:56,814 Máte otázku? 838 00:41:56,814 --> 00:42:00,526 >> SPEAKER 26: [Nepočuteľné] 839 00:42:00,526 --> 00:42:00,990 ALI: Jo. 840 00:42:00,990 --> 00:42:01,830 Je to trochu podobné. 841 00:42:01,830 --> 00:42:07,320 ROB: Jo, takže keď sa dostanete do tejto low-level hardware veci, sú 842 00:42:07,320 --> 00:42:10,870 druhy operácií, ktoré čo do činenia. 843 00:42:10,870 --> 00:42:13,200 Na hardvérové ​​úrovni, budete zaoberať iba s bity. 844 00:42:13,200 --> 00:42:14,950 Nemusíte riešiť s číslami. 845 00:42:18,030 --> 00:42:23,502 ALI: Dobre, pre ^, alebo ak máte 1 ^ 0, ako by mala, že hodnotiť sa? 846 00:42:23,502 --> 00:42:24,840 TRIEDA: 1. 847 00:42:24,840 --> 00:42:25,480 ALI: Cool. 848 00:42:25,480 --> 00:42:26,010 Ak máte 849 00:42:26,010 --> 00:42:28,370 0 ^ 1? TRIEDA: 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 potom 1 ^ 1? 854 00:42:33,460 --> 00:42:35,050 TRIEDA: 0. 855 00:42:35,050 --> 00:42:37,710 ALI: Cool, úžasné. 856 00:42:37,710 --> 00:42:38,620 Ten budúci - 857 00:42:38,620 --> 00:42:40,520 ROB: Myslím, že to sú všetko musíme riešiť. 858 00:42:40,520 --> 00:42:41,490 Budeme robiť len to. 859 00:42:41,490 --> 00:42:43,242 ALI: jediný čas, budeme musieť urobiť - 860 00:42:43,242 --> 00:42:44,912 ROB: Oh, to bude pre posledný problém. 861 00:42:44,912 --> 00:42:47,070 SPEAKER 27: Počkaj, ešte raz? 862 00:42:47,070 --> 00:42:47,940 ALI: Je nám ľúto, aká bola vaša otázka? 863 00:42:47,940 --> 00:42:49,564 >> SPEAKER 27: Môžete mi vysvetliť, že ešte raz? 864 00:42:49,564 --> 00:42:50,100 Znaky ^? 865 00:42:50,100 --> 00:42:51,490 SPEAKER 27: exclus - jo. 866 00:42:51,490 --> 00:42:55,800 ALI: Tak čo exkluzívne OR znamená, že tam musí byť výhradne 867 00:42:55,800 --> 00:43:02,970 jeden pravdivý a jeden nepravdivý, tak jeden 1 a jeden 0, proti sa OR, môžete mať - 868 00:43:02,970 --> 00:43:06,170 jeden z nich musí byť pravda, alebo obaja z nich môže byť pravda, na to 869 00:43:06,170 --> 00:43:07,130 vyhodnotiť na hodnotu true. 870 00:43:07,130 --> 00:43:10,030 SPEAKER 27: Tak 0 a 0 by bol nepravdivý. 871 00:43:10,030 --> 00:43:10,450 ALI: Jo. 872 00:43:10,450 --> 00:43:11,780 Ale ak máte 1 | 873 00:43:11,780 --> 00:43:14,290 1, by to vyhodnotí na true. 874 00:43:14,290 --> 00:43:18,210 Ale ak máte 1 ^ 1, ako sme to urobili, že vyhodnotený ako false. 875 00:43:18,210 --> 00:43:21,220 Vzhľadom k tomu, že to nie je len jeden je pravda. 876 00:43:21,220 --> 00:43:26,930 ROB: A to môže alebo nemusí byť užitočné, ale upozornenie, že ^ je 877 00:43:26,930 --> 00:43:28,890 rovná len brať | 878 00:43:28,890 --> 00:43:30,290 mínus &. 879 00:43:30,290 --> 00:43:32,250 A môžete skutočne myslieť na to takhle. 880 00:43:32,250 --> 00:43:37,290 ^ Je len ORing všetko dohromady, ale pri žiadnej z bitov, kde 881 00:43:37,290 --> 00:43:38,610 obaja boli pravdivé. 882 00:43:38,610 --> 00:43:41,620 Tak a vráti všetko, kde obaja boli pravdivé. 883 00:43:41,620 --> 00:43:45,850 | Vracia všetko, kde je jeden alebo obaja boli pravdivé. 884 00:43:45,850 --> 00:43:51,050 Takže odpočítaním že sa z | vám dáva ^. 885 00:43:51,050 --> 00:43:52,040 ALI: na niečo spýtať? 886 00:43:52,040 --> 00:43:53,290 To bolo veľa informácií. 887 00:43:55,980 --> 00:43:57,510 Každý dobrý? 888 00:43:57,510 --> 00:44:00,360 >> ROB: Môžeme ísť v najbližších tie pre ďalší problém, lomítko 889 00:44:00,360 --> 00:44:01,680 koľko je hodín? 890 00:44:01,680 --> 00:44:04,010 Nemusí to až do ďalšieho problému. 891 00:44:04,010 --> 00:44:07,830 ALI: Myslel som, že to bola táto. 892 00:44:07,830 --> 00:44:08,830 ROB: To nie je. 893 00:44:08,830 --> 00:44:10,085 ALI: Si si istý? 894 00:44:10,085 --> 00:44:11,300 ROB: Áno, som si istý. 895 00:44:11,300 --> 00:44:12,970 ALI: Prečo nezačneme robiť ďalší problém? 896 00:44:15,710 --> 00:44:19,790 Problém je, opäť, pre zmenu z malá na veľké, a to 897 00:44:19,790 --> 00:44:21,720 čas použiť bitové operátory. 898 00:44:21,720 --> 00:44:22,970 ROB: Takže budeme - 899 00:44:25,290 --> 00:44:29,670 Začnime s binárne reprezentácie "A", kapitálu "A", 900 00:44:29,670 --> 00:44:31,750 ktorá je 65. 901 00:44:31,750 --> 00:44:36,150 Takže v binárnej - 902 00:44:39,960 --> 00:44:47,900 tak 'A' = 65, ktorý =, v binárnej forme - 903 00:44:47,900 --> 00:44:51,380 Idem pokaziť počtu 0s - že. 904 00:44:51,380 --> 00:44:53,670 ALI: Takže to zmysel pre každého? 905 00:44:53,670 --> 00:44:57,620 Takže, 1, žiadne 2s, nie 4s, nie 8s, nie - 906 00:45:00,238 --> 00:45:07,075 žiadne 16s, 32s bez, a potom jeden 64. 907 00:45:07,075 --> 00:45:08,685 ROB: Jo, myslím, že je to jeden príliš veľa 0s. 908 00:45:08,685 --> 00:45:09,600 ALI: Sorry. 909 00:45:09,600 --> 00:45:13,410 >> ROB: Dobre, takže máme 64 set, a máme 1 sadu, a kombinujúci 910 00:45:13,410 --> 00:45:16,030 spoločne, dostaneme 65. 911 00:45:16,030 --> 00:45:17,470 ALI: Cool fazuľa? 912 00:45:17,470 --> 00:45:19,640 ROB: Takže teraz, malá premennej 'a'- 913 00:45:22,220 --> 00:45:24,260 všimnete 97 - 914 00:45:24,260 --> 00:45:26,370 aký je rozdiel medzi 97 a 65? 915 00:45:26,370 --> 00:45:27,530 SPEAKER 28: 32. 916 00:45:27,530 --> 00:45:28,130 ROB: Jo. 917 00:45:28,130 --> 00:45:35,920 Takže je to 32, čo je jeho vlastná bit, takže to bude 110001. 918 00:45:35,920 --> 00:45:41,200 A to bude platiť pre všetky možné znaky. 919 00:45:41,200 --> 00:45:49,800 Takže ak si myslíme, že "D", ktorá sa bude 68, tak to bude 1000011. 920 00:45:49,800 --> 00:45:56,310 A potom malá "d" bude 68 a 32, čo je 100, čo je 921 00:45:56,310 --> 00:46:00,010 bude to isté, že to bolo, len mizerný 922 00:46:00,010 --> 00:46:04,300 32 znova, tak 1100011. 923 00:46:04,300 --> 00:46:08,610 Takže rozdiel medzi veľkými a malými písmenami listu je len mizerný 924 00:46:08,610 --> 00:46:10,170 že 32-bit pozície. 925 00:46:10,170 --> 00:46:17,670 SPEAKER 29: Nie je to 1000100? 926 00:46:17,670 --> 00:46:19,670 ROB: Počkaj, to je 100 - 927 00:46:19,670 --> 00:46:20,480 niečo, čo som urobil zle. 928 00:46:20,480 --> 00:46:21,730 To nebola pravda. 929 00:46:28,710 --> 00:46:31,150 Myslel som, že to bol rozdiel 3, tak som len prilepené 930 00:46:31,150 --> 00:46:33,970 binárne 3 na konci. 931 00:46:33,970 --> 00:46:36,710 To by malo byť v poriadku. 932 00:46:36,710 --> 00:46:37,150 ALI: Ďakujem. 933 00:46:37,150 --> 00:46:38,080 Dobré pre spárovanie to von. 934 00:46:38,080 --> 00:46:40,320 To bol ostrý. 935 00:46:40,320 --> 00:46:43,450 Dobre, je to jasné ľuďom? 936 00:46:43,450 --> 00:46:45,700 >> ROB: Rozdiel medzi veľkými a malými písmenami verzia je 937 00:46:45,700 --> 00:46:49,250 vždy len tak, že je 32, a tak, že sa vždy bude jeden bit 938 00:46:49,250 --> 00:46:51,840 , Ktoré musia byť prevrátený prepínať medzi nimi. 939 00:46:51,840 --> 00:46:54,330 ALI: Takže v tomto prípade, pretože vedel, rozdiel medzi hlavným mestom A a 940 00:46:54,330 --> 00:46:57,130 malé písmo je dobrá vec. 941 00:46:57,130 --> 00:47:01,950 Nie je v kóde, ale koncepčne aspoň je to dobré. 942 00:47:01,950 --> 00:47:05,880 Takže vy môžete ísť dopredu a kód, ktorý sa v priestoroch dnes. 943 00:47:05,880 --> 00:47:08,580 Alebo by sme mali jednoducho diskutovať? 944 00:47:08,580 --> 00:47:09,760 ROB: Môžeme len diskutovať. 945 00:47:09,760 --> 00:47:10,680 Neviem. 946 00:47:10,680 --> 00:47:11,680 Vy môžete vyskúšať. 947 00:47:11,680 --> 00:47:13,560 Diskusia medzi seba na chvíľu. 948 00:47:13,560 --> 00:47:16,390 Dáme vám šancu kód,. 949 00:47:16,390 --> 00:47:17,640 [Prechodová Hlasy] 950 00:47:19,785 --> 00:47:22,695 ALI: - je v pohode 951 00:47:22,695 --> 00:47:26,590 SPEAKER 30: To je ako hacker komédia. 952 00:47:26,590 --> 00:47:31,060 ALI: Jo, my sme len hovorím správy, prechádzame. 953 00:47:31,060 --> 00:47:32,310 >> ROB: A sme späť. 954 00:47:34,950 --> 00:47:35,405 ALI: To je trochu divné. 955 00:47:35,405 --> 00:47:38,720 Mám pocit, že by sme mali mať CS50 správy stanicu a mohli by sme 956 00:47:38,720 --> 00:47:41,500 skutočne sedieť takhle. 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: Nebojte sa opýtať na nejaké otázky, ak ste zmätení. 960 00:47:52,280 --> 00:47:53,980 ROB: Je niekto strčil? 961 00:47:53,980 --> 00:47:57,160 ALI: Jo, to je dobrá vec. 962 00:47:57,160 --> 00:47:58,590 ALI: Počkajte, ste uviazol v kresle? 963 00:47:58,590 --> 00:48:01,010 Oh. 964 00:48:01,010 --> 00:48:02,260 Bol som trochu obavy. 965 00:48:06,670 --> 00:48:12,150 ROB: Pretože som si uvedomil, že sa budeme chcieť 966 00:48:12,150 --> 00:48:13,300 iný prevádzkovateľ bitové. 967 00:48:13,300 --> 00:48:16,985 Pre túto chvíľu, poďme len previesť veľké na malé písmená. 968 00:48:23,280 --> 00:48:25,220 ALI: Je nám ľúto, to všetci dostať, že oznámenie? 969 00:48:25,220 --> 00:48:27,755 Budeme chodiť od veľká na malé písmená. 970 00:48:27,755 --> 00:48:30,990 ROB: Potom budeme diskutovať malými písmenami, aby veľká právo po tom. 971 00:48:33,820 --> 00:48:36,650 Oh, nie. 972 00:48:36,650 --> 00:48:39,560 Máme chybu v tomto, čo, myslím, že sme sa nikdy sa pokúsil spustiť. 973 00:48:39,560 --> 00:48:44,140 Čo je práve to char c musí byť vyhlásená mimo slučky, pretože 974 00:48:44,140 --> 00:48:45,805 jeho rozsah je obmedzený v slučke. 975 00:48:49,200 --> 00:48:53,060 SPEAKER 32: V tomto prípade, je to zlé použiť číslo? 976 00:48:53,060 --> 00:48:56,930 ROB: Eh, nemusíte sa. 977 00:48:56,930 --> 00:49:02,040 Ak som zaručené, že kapitálu premenné 'a'-alebo, malé písmená "a" mínus kapitál "" 978 00:49:02,040 --> 00:49:09,340 bol presne jeden bit, ale že neviete, že je to 32 - 979 00:49:09,340 --> 00:49:13,160 veci by fungovať rovnako dobre, ak to bolo 16 bit, ktorý sa nakoniec - alebo 980 00:49:13,160 --> 00:49:14,610 no, myslím, že to wouldn't - 981 00:49:14,610 --> 00:49:18,270 alebo 64 bit bol prevrátený, možno. 982 00:49:18,270 --> 00:49:23,230 Ale nemali by ste potrebovať 32. 983 00:49:23,230 --> 00:49:26,141 Dalo by sa namiesto toho použiť malé písmená "a" mínus kapitálové 'A'. 984 00:49:26,141 --> 00:49:29,340 >> SPEAKER 32: Dobre. 985 00:49:29,340 --> 00:49:32,996 Čo môžete robiť, keď máte pocit, že píšete príliš veľa, je môžete definovať 986 00:49:32,996 --> 00:49:33,435 v hornej časti. 987 00:49:33,435 --> 00:49:41,830 Takže si môžete byť rád, int rozdiel = malá "a" mínus kapitálové 'A'. A 988 00:49:41,830 --> 00:49:43,980 potom môžete zadať rozdiel miesto. 989 00:49:43,980 --> 00:49:45,110 To je platné. 990 00:49:45,110 --> 00:49:48,002 Ale len na základe počtu 32 je v istom zmysle - 991 00:49:48,002 --> 00:49:51,104 SPEAKER 33: Aj keď je to kvôli tomu, že je to 32 bit? 992 00:49:51,104 --> 00:49:52,570 ALI: Jo. 993 00:49:52,570 --> 00:49:54,960 ROB: Tam by mohlo byť - 994 00:49:54,960 --> 00:49:57,780 jedinou zárukou musíme ťa je to, že rozdiel medzi 995 00:49:57,780 --> 00:49:59,480 malé a veľké písmená, je jeden bit. 996 00:49:59,480 --> 00:50:04,670 To by na tom, že sa to stane, že je 32 bit, ktorý je prevrátený. 997 00:50:04,670 --> 00:50:06,610 Pre časové úvahy, začneme ísť cez to. 998 00:50:09,170 --> 00:50:10,370 To je v poriadku, ak ste nedokončili. 999 00:50:10,370 --> 00:50:13,090 Nerobte si starosti. 1000 00:50:13,090 --> 00:50:16,260 ROB: Za predpokladu, že c je veľké písmeno - 1001 00:50:16,260 --> 00:50:18,030 nemáme predpokladať c je veľké písmeno. 1002 00:50:18,030 --> 00:50:20,750 Vieme, že c je veľké písmeno po tomto cykle while - 1003 00:50:20,750 --> 00:50:22,160 do-while. 1004 00:50:22,160 --> 00:50:28,590 Takže to znamená, že vyzerá nejako takto "". Takže ak chceme, aby bol tento 1005 00:50:28,590 --> 00:50:32,895 "" K tomuto "", čo musíme urobiť? 1006 00:50:36,890 --> 00:50:41,920 Tak ako sme sa previesť a flip bit? 1007 00:50:48,040 --> 00:50:49,450 ALI: Ako prevrátiť ju? 1008 00:50:49,450 --> 00:50:53,010 >> ROB: Takže vieme, že chceme, aby flip 32 bit. 1009 00:50:53,010 --> 00:50:59,722 Takže bude robiť "" mínus "", alebo môžeme napísať 32, ale - 1010 00:50:59,722 --> 00:51:03,090 zatraceně, je to naopak. 1011 00:51:03,090 --> 00:51:07,250 ALI: Dobre, takže tu je Rob tohto počtu, magické číslo 32. 1012 00:51:07,250 --> 00:51:12,000 Takže on zistil, kde to trochu fanúšik by oblasť. 1013 00:51:12,000 --> 00:51:14,810 A potom čo sme dali, kde otázniky sú? 1014 00:51:14,810 --> 00:51:16,740 ROB: Ako prevrátiť ten kúsok? 1015 00:51:16,740 --> 00:51:22,784 Pokiaľ ide o veľké písmeno, je to 0, a my chceme, aby sa stal 1. 1016 00:51:22,784 --> 00:51:23,660 SPEAKER 34: |. 1017 00:51:23,660 --> 00:51:24,910 ROB: Jo. 1018 00:51:28,780 --> 00:51:38,190 Tak to je nám hovorí berieme 'A'. Sme ORing s 0 - 1019 00:51:38,190 --> 00:51:40,750 1000 - 1020 00:51:40,750 --> 00:51:44,720 a že = že. 1021 00:51:44,720 --> 00:51:45,930 ALI: Má to zmysel pre každého? 1022 00:51:45,930 --> 00:51:48,812 Môžeme ísť cez neho kúsok po kúsku, ak chcete. 1023 00:51:52,030 --> 00:51:56,300 SPEAKER 35: Vy ste [nepočuteľné]? 1024 00:51:56,300 --> 00:51:57,590 ALI: Kde je znamienko mínus? 1025 00:51:57,590 --> 00:51:58,500 ROB: Oh, myslíš tu? 1026 00:51:58,500 --> 00:51:59,070 ALI: Oh, yeah. 1027 00:51:59,070 --> 00:52:00,140 ROB: Tak myslím, že toto je nám. 1028 00:52:00,140 --> 00:52:05,670 Dalo by sa povedať 32, a teraz sa budeme len pomocou bitovej operátormi. 1029 00:52:05,670 --> 00:52:07,010 ALI: Nemáme radi magické čísla. 1030 00:52:07,010 --> 00:52:10,460 Nebudeme robiť, že. 1031 00:52:10,460 --> 00:52:13,592 Tiež si myslím, že by sme mali jednoducho použiť operátor bitový - 1032 00:52:13,592 --> 00:52:19,042 SPEAKER 36: Ak používate ^ A, dostanete 32? 1033 00:52:19,042 --> 00:52:19,980 SPEAKER 37: Jo, myslím, že - 1034 00:52:19,980 --> 00:52:21,090 ROB: Jo, budete. 1035 00:52:21,090 --> 00:52:23,320 ALI: To je, ako by to urobil pre prechod 1036 00:52:23,320 --> 00:52:25,370 z kapitálu na malé písmená. 1037 00:52:25,370 --> 00:52:31,130 >> Teraz môže mi niekto povedať, prečo Rob a ja zmenil riadku a ako sme šli 1038 00:52:31,130 --> 00:52:34,040 od veľkými malými písmenami, namiesto malá, aby 1039 00:52:34,040 --> 00:52:37,810 veľká, ako sme to urobili predtým? 1040 00:52:37,810 --> 00:52:44,520 Má niekto nejaké nápady, prečo by to mohlo byť ťažšie? 1041 00:52:44,520 --> 00:52:44,880 ROB: Takže by sme robiť - 1042 00:52:44,880 --> 00:52:46,178 ALI: Jo, pokojne. 1043 00:52:46,178 --> 00:52:49,640 SPEAKER 38: | Prevádzkovateľ bolo len naozaj dobré pre pridanie. 1044 00:52:49,640 --> 00:52:51,200 ALI: Jo, presne tak. 1045 00:52:51,200 --> 00:52:58,320 ROB: Takže to, čo chceme robiť v malými písmenami na veľké písmená prípad je, 1046 00:52:58,320 --> 00:53:00,175 previesť tento premennej 'a'- 1047 00:53:08,540 --> 00:53:14,820 tak chceme aby v niektorých číslach tu a použiť niektoré operátora tak, že je 1048 00:53:14,820 --> 00:53:21,910 sa na kapitálové A. Sme pravdepodobne stále používate 32 nejako, ale teraz, ako my 1049 00:53:21,910 --> 00:53:25,280 si to, aby vyšiel na to? 1050 00:53:40,910 --> 00:53:42,750 Tak c - 1051 00:53:42,750 --> 00:53:44,000 oh, ja stále chcem taky - 1052 00:53:46,940 --> 00:53:51,055 ALI: Takže teraz, keď sme prevod z malých písmen na veľké písmená znovu, potom sme 1053 00:53:51,055 --> 00:53:55,170 robiť ^ operácii, ako vy povedal. 1054 00:53:55,170 --> 00:53:57,650 ROB: Existujú aj iné spôsoby, ako môžete robiť veci. 1055 00:53:57,650 --> 00:54:01,680 Mnoho prevádzkovateľov bitové skončiť veľmi ľahko definovateľný z hľadiska 1056 00:54:01,680 --> 00:54:03,460 iných subjektov bitové. 1057 00:54:03,460 --> 00:54:11,150 Tak som šiel, aby nepoužíval ^ alebo vôbec, ale ^ fungovalo úplne v poriadku. 1058 00:54:11,150 --> 00:54:17,910 >> ALI: Dobre, tak sme ísť na posledný problém, ktorý má základné - 1059 00:54:17,910 --> 00:54:22,390 Posledný problém je previesť niečo do binárne. 1060 00:54:22,390 --> 00:54:26,350 Tak napríklad, máte 50, a potom ho previesť na 1061 00:54:26,350 --> 00:54:31,400 binárne, čo je 110010. 1062 00:54:31,400 --> 00:54:36,010 A myslím, že vy všetci vieme, o binárny z prednášky. 1063 00:54:36,010 --> 00:54:39,270 A tiež by nemala dať nejakú vedúcu 0s do neho. 1064 00:54:39,270 --> 00:54:41,460 ROB: Môžete ignorovať túto časť teraz. 1065 00:54:41,460 --> 00:54:45,250 V prvom prechode, môžete to urobiť tak, že tam sú predné 0s. 1066 00:54:45,250 --> 00:54:49,200 A potom môžeme upraviť, že mať žiadnu vedúci 0s, ak budeme mať čas. 1067 00:54:49,200 --> 00:54:50,630 ALI: Takže sa nemusíte starať o to. 1068 00:54:50,630 --> 00:54:52,620 Len sa snaží dostať v binárnom formáte. 1069 00:54:55,880 --> 00:54:59,855 Dobré miesto pre štart by mohol byť - 1070 00:54:59,855 --> 00:55:02,010 ROB: Musíme požiadať o celé číslo. 1071 00:55:02,010 --> 00:55:03,150 ALI: Ach jo, to je dobrý. 1072 00:55:03,150 --> 00:55:04,170 Môžeme začať s tým. 1073 00:55:04,170 --> 00:55:06,870 Takže si môžete zmeniť riadku. 1074 00:55:06,870 --> 00:55:08,840 Takže namiesto toho, postavy, teraz máme čo do činenia s celými číslami. 1075 00:55:13,670 --> 00:55:14,920 V pohode? 1076 00:55:20,630 --> 00:55:25,300 >> ROB: A teraz, čo je u nás do-while podmienka bude? 1077 00:55:25,300 --> 00:55:27,750 Je žiadať o non-záporné celé číslo. 1078 00:55:31,080 --> 00:55:34,280 ALI: Keď chceme, aby užívateľovi zobrazil výzvu pre niečo iné? 1079 00:55:34,280 --> 00:55:35,950 Keď je menšia ako 0. 1080 00:55:35,950 --> 00:55:36,760 ALI: Right. 1081 00:55:36,760 --> 00:55:38,010 ROB: Kým som je menšia ako 0. 1082 00:55:41,090 --> 00:55:45,120 ALI: Teraz chceme previesť. 1083 00:55:45,120 --> 00:55:48,150 Myslíte si, chlapci majú nejaké nápady, čo robiť? 1084 00:55:48,150 --> 00:55:49,400 Akékoľvek Inklings? 1085 00:55:53,610 --> 00:55:54,984 Jo. 1086 00:55:54,984 --> 00:55:57,344 SPEAKER 39: Máme previesť, alebo môžeme len vytlačiť niektoré 0s a 1s 1087 00:55:57,344 --> 00:55:58,760 že by správne číslo? 1088 00:55:58,760 --> 00:56:02,070 Mohli by ste urobiť pre sláčiky a počítať z mocninou 2? 1089 00:56:02,070 --> 00:56:03,320 ROB: Áno. 1090 00:56:05,750 --> 00:56:08,425 Nemusíte previesť aj na svoje binárne - 1091 00:56:08,425 --> 00:56:13,720 binárne reprezentácie aj sa nezmestia dovnútra i 1092 00:56:13,720 --> 00:56:19,090 Stačí len vytlačiť binárne reprezentácie i 1093 00:56:19,090 --> 00:56:21,010 ALI: Inými slovami, nemusíte ísť sily dva. 1094 00:56:21,010 --> 00:56:23,710 ROB: Pretože som sa už uložená ako binárny, takže nemusíte 1095 00:56:23,710 --> 00:56:25,110 previesť na binárne. 1096 00:56:25,110 --> 00:56:27,260 Stačí ísť cez jeho binárne, a vytlačte ho. 1097 00:56:30,080 --> 00:56:32,140 A budete musieť použiť bitové, pretože sa chcete pozrieť na 1098 00:56:32,140 --> 00:56:33,390 skutočné bity. 1099 00:56:37,060 --> 00:56:38,600 Nemusíte používať bitové, ale prosím. 1100 00:56:44,130 --> 00:56:47,160 A to je vlastne - 1101 00:56:47,160 --> 00:56:50,200 stačí urobiť právomoci v dvoch vynásobením 2. 1102 00:56:50,200 --> 00:56:55,120 Pôjdeme cez jeden z posledných dvoch binárnych operátorov bitové, 1103 00:56:55,120 --> 00:56:56,410 ktoré je tento. 1104 00:56:56,410 --> 00:56:58,730 Takže keď budete mať - 1105 00:56:58,730 --> 00:57:00,083 >> ALI: Dokážete prejsť obaja? 1106 00:57:00,083 --> 00:57:01,440 ROB: Jo. 1107 00:57:01,440 --> 00:57:03,050 Tak poďme sa 9. 1108 00:57:03,050 --> 00:57:05,210 Takže 9 ľavý shift 1 - 1109 00:57:05,210 --> 00:57:12,220 čo zostalo radiacej prostriedky je len presunúť všetky bity doľava a vložte 0. 1110 00:57:12,220 --> 00:57:15,530 Takže ideme všetky kúsky 9 na ľavom 1111 00:57:15,530 --> 00:57:20,240 Pozícia, ktorý nám dáva - 1112 00:57:26,530 --> 00:57:31,570 Tak zistíte sme sa posunuli everything ľavá, a vložil 0 na strane 1113 00:57:31,570 --> 00:57:32,730 pravá strana. 1114 00:57:32,730 --> 00:57:36,755 Keby sme posunuté vľavo dva, by sme posunúť všetko zostalo po dvoch, 1115 00:57:36,755 --> 00:57:41,950 a vložte dve 0s vypĺňať medzery. 1116 00:57:41,950 --> 00:57:43,200 Otázka? 1117 00:57:44,890 --> 00:57:47,510 ALI: Takže pravdu posun robí podobnú vec. 1118 00:57:47,510 --> 00:57:53,190 Ak máte 9 správny posun 1 potom ste len všetko posunie sa k 1119 00:57:53,190 --> 00:57:57,890 právo, stratíte číslicu tak, 100 miesto. 1120 00:57:57,890 --> 00:58:04,142 ROB: Takže je to v poriadku, že ste stratili trochu, čo sa stalo, že všetky 1121 00:58:04,142 --> 00:58:05,200 cesta doprava. 1122 00:58:05,200 --> 00:58:08,850 Existujú rôzne typy pravých smien, ale v podstate si môžete myslieť 1123 00:58:08,850 --> 00:58:11,410 Pravý Shift ako práve delenie 2. 1124 00:58:11,410 --> 00:58:14,430 A môžete si z ľavého posunu ako vynásobením 2. 1125 00:58:14,430 --> 00:58:16,490 Takže ak ste previedli to - 1126 00:58:16,490 --> 00:58:22,350 Ak ste previedli 9 posun 1, ktorá je rovná 10010, ak ste vlastne išiel 1127 00:58:22,350 --> 00:58:25,100 cez binárne a prišiel na to, čo to bolo, bolo by to jednoducho byť 18. 1128 00:58:25,100 --> 00:58:26,880 Práve sme násobiť 2. 1129 00:58:26,880 --> 00:58:30,982 1001 ľavý shift 2 bude 36. 1130 00:58:30,982 --> 00:58:32,400 Sme násobiť 4. 1131 00:58:41,740 --> 00:58:45,360 Dobre, v pohode, takže je to šikovný bitový operátor pre tento jeden. 1132 00:58:52,570 --> 00:58:53,330 Viac zmätok? 1133 00:58:53,330 --> 00:58:54,870 Myslíte si chlapci chcú to vyskúšať? 1134 00:58:54,870 --> 00:58:58,970 Alebo môžeme jednoducho skočiť priamo a začať ju? 1135 00:58:58,970 --> 00:59:01,140 ROB: Asi by sme mali skočiť dovnútra 1136 00:59:01,140 --> 00:59:01,880 ALI: Jo, jo. 1137 00:59:01,880 --> 00:59:03,370 ROB: A prejsť spoločne. 1138 00:59:03,370 --> 00:59:04,440 >> ALI: No, ja pôjdem do toho. 1139 00:59:04,440 --> 00:59:09,700 Takže ako povedal na začiatku, budeme len prejsť kúsok po kúsku. 1140 00:59:09,700 --> 00:59:11,890 Takže budeme potrebovať slučku. 1141 00:59:11,890 --> 00:59:16,730 Má niekto predstavu o najlepšieho druhu slučky ísť cez to? 1142 00:59:16,730 --> 00:59:20,544 Máme while, do-while, for cykly. 1143 00:59:20,544 --> 00:59:22,400 SPEAKER 40: Do-while? 1144 00:59:22,400 --> 00:59:25,150 ROB: Takže pamätajte, čo som povedal predtým, než o tom, my sme len s použitím do-while 1145 00:59:25,150 --> 00:59:27,390 slučky získať vstup od užívateľa. 1146 00:59:27,390 --> 00:59:30,890 Už nikdy sa nebudete skoro vôbec použiť na nič iné. 1147 00:59:30,890 --> 00:59:33,660 ALI: Problém s do-while je to niečo urobí, ako skontroluje 1148 00:59:33,660 --> 00:59:34,470 stav. 1149 00:59:34,470 --> 00:59:36,540 Takže by to mohlo niečo zlé - 1150 00:59:36,540 --> 00:59:38,640 Páči, bolí - 1151 00:59:38,640 --> 00:59:40,350 urobiť niečo, čo nie je možné. 1152 00:59:40,350 --> 00:59:42,290 Takže chcete, aby si najskôr. 1153 00:59:42,290 --> 00:59:47,620 ROB: Je tu veľa prípadov, kedy je možné použiť do-while, ale ľudia 1154 00:59:47,620 --> 00:59:52,120 Nečakám, že ich použitie, ak je to vstup užívateľa. 1155 00:59:52,120 --> 00:59:54,215 Takže sme použili naše do-while slučky získať i 1156 00:59:57,160 --> 01:00:01,260 Koľkokrát sa naša slučka bude chcieť do slučky? 1157 01:00:01,260 --> 01:00:04,060 Chceme slučky nad každou z bitov i 1158 01:00:04,060 --> 01:00:06,302 , Koľko bitov sa v i? 1159 01:00:06,302 --> 01:00:07,266 SPEAKER 41: 32. 1160 01:00:07,266 --> 01:00:07,750 ALI: Jo. 1161 01:00:07,750 --> 01:00:09,850 ROB: Takže tam je 32 bitov. 1162 01:00:09,850 --> 01:00:12,920 Nechceme hovoriť 32. 1163 01:00:12,920 --> 01:00:16,230 My miesto toho chce povedať sizeof - 1164 01:00:16,230 --> 01:00:18,226 ktoré, ste vidieť, že v triede ešte? 1165 01:00:18,226 --> 01:00:19,100 ALI: Nie. 1166 01:00:19,100 --> 01:00:20,380 ROB: Prečo to hovorím, že použitie - 1167 01:00:20,380 --> 01:00:22,160 sizeof (int) krát 8 - 1168 01:00:22,160 --> 01:00:23,530 ALI: Takže, sizeof je - 1169 01:00:23,530 --> 01:00:27,050 >> SPEAKER 42: [Nepočuteľné] 1170 01:00:27,050 --> 01:00:27,440 ALI: Zaujímavé. 1171 01:00:27,440 --> 01:00:31,610 Takže, sizeof je vstavaný C funkcie, kde to len povie vám 1172 01:00:31,610 --> 01:00:32,500 počet bitov v - 1173 01:00:32,500 --> 01:00:33,220 ROB: Bytes. 1174 01:00:33,220 --> 01:00:34,210 ALI: Bytes, sorry - 1175 01:00:34,210 --> 01:00:39,990 počet bajtov premenná pre uloženie hodnoty. 1176 01:00:39,990 --> 01:00:46,205 Takže si myslím, prešiel v triede, a potom, int 4 byty možná. 1177 01:00:46,205 --> 01:00:46,610 V pohode? 1178 01:00:46,610 --> 01:00:50,610 ROB: Ale nemali by ste vedieť, že int je 4 bajty. 1179 01:00:50,610 --> 01:00:52,670 Mali by ste byť schopní povedať - 1180 01:00:52,670 --> 01:00:55,870 mali by ste použiť sizeof (int), aby si 4 bajty. 1181 01:00:55,870 --> 01:00:59,170 A to je vlastne dôležité pre niektoré veci. 1182 01:00:59,170 --> 01:01:01,650 Int nemusí byť 4 byty. 1183 01:01:01,650 --> 01:01:04,050 Na inom počítači, môže byť int 8 bajtov. 1184 01:01:04,050 --> 01:01:08,500 Takže váš program nebude pracovať na tom počítači, pretože si pevne 32 1185 01:01:08,500 --> 01:01:12,230 bitov keď na tomto počítači stane byť 64 bitov. 1186 01:01:12,230 --> 01:01:15,260 ALI: Takže máte celkový počet bitov, ktoré chcete, aby zvrátiť. 1187 01:01:15,260 --> 01:01:17,480 ROB: A rozdiel medzi bajtu a kúskom je, že 1188 01:01:17,480 --> 01:01:19,100 sú 8 bitov v bajtu. 1189 01:01:19,100 --> 01:01:22,110 Takže sizeof (int) vracia 4 bajty, potom musíme násobiť, že 1190 01:01:22,110 --> 01:01:24,420 od 8 dostať 32 bitov. 1191 01:01:24,420 --> 01:01:27,680 >> ALI: Dobre, takže vieme, že maximum a my vieme, že chceme ísť od - 1192 01:01:27,680 --> 01:01:29,260 chceme prejsť všetky z nich. 1193 01:01:29,260 --> 01:01:32,950 Takže chceme ísť od 0 do numBits. 1194 01:01:32,950 --> 01:01:37,160 Takže neviete niekto, ako napísať slučku, že? 1195 01:01:37,160 --> 01:01:37,790 Každý, kto? 1196 01:01:37,790 --> 01:01:39,680 SPEAKER 43: [Nepočuteľné] 1197 01:01:39,680 --> 01:01:44,130 ALI: Takže chcete prechádzať čísla aj z nultého bitu na 1198 01:01:44,130 --> 01:01:47,840 Prvý bit, druhý bit, tretí bit, až do numBits. 1199 01:01:47,840 --> 01:01:50,972 Počet max bitov, ktoré môžete dostať. 1200 01:01:54,420 --> 01:01:57,780 ROB: Čo je to spoločný slučky používame to, čo chceme robiť krát niečo x? 1201 01:01:57,780 --> 01:01:58,280 ALI: Pro. 1202 01:01:58,280 --> 01:01:59,280 Perfect. 1203 01:01:59,280 --> 01:02:00,440 Takže máme pre. 1204 01:02:00,440 --> 01:02:05,242 A potom budeme vytvoriť Iterator, ktorý sa nebude i 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 Takže začneme na 0. 1208 01:02:09,740 --> 01:02:13,110 A potom budeme mať podmienku, aby sa ubezpečil, kým ste 1209 01:02:13,110 --> 01:02:14,968 prechádzame zakaždým - 1210 01:02:14,968 --> 01:02:16,960 [Prechodová Hlasy] 1211 01:02:16,960 --> 01:02:17,960 ROB: j 1212 01:02:17,960 --> 01:02:19,970 ALI: j je menšia ako numBits. 1213 01:02:19,970 --> 01:02:23,680 Takže nechceme robiť skutočné rovný jednej, pretože sú numBits 1214 01:02:23,680 --> 01:02:25,365 celkom, a začneme na 0. 1215 01:02:25,365 --> 01:02:26,360 Takže sme vlastne bude mať - 1216 01:02:26,360 --> 01:02:27,400 SPEAKER 44: Oh. 1217 01:02:27,400 --> 01:02:29,300 ALI: Indexy nekončí na numBits mínus 1. 1218 01:02:29,300 --> 01:02:34,070 ROB: My označiť bity 0-31, nemáme označiť 1-32. 1219 01:02:34,070 --> 01:02:36,970 ALI: A potom budeme zvyšovať, zakaždým jeden, pretože chceme 1220 01:02:36,970 --> 01:02:38,050 zistiť všetky do jedného. 1221 01:02:38,050 --> 01:02:39,851 Takže pôjdeme j + +. 1222 01:02:39,851 --> 01:02:42,740 >> SPEAKER 45: Prečo to robíš, že? 1223 01:02:42,740 --> 01:02:46,100 SPEAKER 46: Prečo ideš cez každý kúsok? 1224 01:02:46,100 --> 01:02:49,310 ROB: Takže chceme prejsť každý kúsok a - 1225 01:02:52,780 --> 01:02:55,100 Takže povedzme, že máme určitý počet. 1226 01:02:55,100 --> 01:02:56,195 ALI: 68. 1227 01:02:56,195 --> 01:02:57,470 ROB: Môžeme použiť 68. 1228 01:02:57,470 --> 01:03:00,450 Takže binárne to bude 100100. 1229 01:03:00,450 --> 01:03:05,540 Takže je to vnútri aj a chceme prejsť každý z týchto bitov. 1230 01:03:05,540 --> 01:03:06,450 Je to 1? 1231 01:03:06,450 --> 01:03:07,320 Tlač 1. 1232 01:03:07,320 --> 01:03:08,120 Je to 0? 1233 01:03:08,120 --> 01:03:09,100 Tlač 0. 1234 01:03:09,100 --> 01:03:10,530 Potom ideme na ďalšie bit. 1235 01:03:10,530 --> 01:03:11,210 Je to 1? 1236 01:03:11,210 --> 01:03:11,610 Tlač 1. 1237 01:03:11,610 --> 01:03:11,830 Je 0? 1238 01:03:11,830 --> 01:03:13,080 Tlač 0. 1239 01:03:14,880 --> 01:03:16,710 ALI: Cool, v poriadku. 1240 01:03:16,710 --> 01:03:22,880 Teraz sme na správnej indexu, kde ten kúsok je. 1241 01:03:25,380 --> 01:03:28,080 Ako môžeme zistiť, že konkrétne jeden? 1242 01:03:28,080 --> 01:03:33,130 Povedzme, že sme na j = 0, takže chceme skontrolovať 0 index bitu. 1243 01:03:33,130 --> 01:03:37,980 Takže, v tomto prípade, to jeden. 1244 01:03:37,980 --> 01:03:41,930 >> Takže teraz ako sme sa ísť o kontrolu - oh, bolo by to byť jedno. 1245 01:03:41,930 --> 01:03:42,810 ROB: Jo. 1246 01:03:42,810 --> 01:03:44,310 ALI: Sorry. 1247 01:03:44,310 --> 01:03:47,930 Ako by sme ísť o kontrolu, že jeden, v istom zmysle? 1248 01:03:47,930 --> 01:03:52,030 Ako by sme zistiť, či je to 0 alebo 1? 1249 01:03:52,030 --> 01:03:52,730 No rokov 's - 1250 01:03:52,730 --> 01:03:53,940 TRIEDA: A 1? 1251 01:03:53,940 --> 01:03:54,390 ALI: A? 1252 01:03:54,390 --> 01:03:55,010 Jo. 1253 01:03:55,010 --> 01:03:57,810 ROB: Takže povedzme, že už máme 1. 1254 01:03:57,810 --> 01:04:02,470 Potom je táto a, bude táto vráti, či je 1 alebo 0. 1255 01:04:05,580 --> 01:04:08,200 ALI: Takže môžeme ísť dole. 1256 01:04:08,200 --> 01:04:10,695 A môžeme robiť, čo vy povedal, robiť to & funkcie. 1257 01:04:13,810 --> 01:04:15,560 ROB: int - 1258 01:04:15,560 --> 01:04:18,290 ako chcem povedať toto - 1259 01:04:18,290 --> 01:04:24,250 Isona = i 1260 01:04:24,250 --> 01:04:29,770 A pre prvý bit sa stalo, že sa pri pohľade na, robíme I & 1. 1261 01:04:29,770 --> 01:04:33,302 Čo teraz budeme chcieť a tým, na druhú bit? 1262 01:04:33,302 --> 01:04:34,294 SPEAKER 47: 2. 1263 01:04:34,294 --> 01:04:36,110 ROB: Jo, druhá, že sme na 2. 1264 01:04:36,110 --> 01:04:39,100 ALI: Určite ste si všimli, že 1 je prešiel do ľavého. 1265 01:04:39,100 --> 01:04:44,320 Takže sme sa dozvedeli nejaké bitové operátorov k tomu, že funkcia? 1266 01:04:44,320 --> 01:04:45,160 ROB: budúci - 1267 01:04:45,160 --> 01:04:46,280 ALI: Jo, jo, presne tak. 1268 01:04:46,280 --> 01:04:48,670 Takže je to posun doľava. 1269 01:04:48,670 --> 01:04:51,120 Namiesto toho, aby vždy poradili s 1, budeme posunúť. 1270 01:04:51,120 --> 01:04:53,470 A koľkokrát sa budeme posunúť? 1271 01:04:53,470 --> 01:04:59,340 Ak budeme kontrolovať ten 0. potom budeme pohybovať nad nulou. 1272 01:04:59,340 --> 01:04:59,975 Jo, presne tak. 1273 01:04:59,975 --> 01:05:02,090 Takže si nechal posunúť ju j 1274 01:05:02,090 --> 01:05:02,550 Perfect. 1275 01:05:02,550 --> 01:05:03,550 Takže teraz vieme - 1276 01:05:03,550 --> 01:05:06,450 máme tento int z, ak je to 1, a potom - 1277 01:05:10,690 --> 01:05:14,670 tak láskavý a Robova z podvádzanie tu - 1278 01:05:14,670 --> 01:05:18,090 a tak teraz išiel ďalej a on len povedal, že ak to vlastne je 1, 1279 01:05:18,090 --> 01:05:23,540 pretože 1 vyhodnotená ako true, takže nemáme hovoriť ISF Isona rovná 1 - 1280 01:05:23,540 --> 01:05:29,210 takže ak Isona, potom sme tlačiť 1, a inak tlačíme 0. 1281 01:05:29,210 --> 01:05:33,350 >> ROB: Takže náš program má celkovú chybu. 1282 01:05:33,350 --> 01:05:35,845 No, otázky týkajúce sa tejto prvej. 1283 01:05:35,845 --> 01:05:41,692 SPEAKER 48: Môžeš mi niekedy dal Isona vnútri štyri pracovné časti a 1284 01:05:41,692 --> 01:05:47,804 potom sa to posunúť sa ako poslednej časti? 1285 01:05:47,804 --> 01:05:50,050 Takže Isona rovná 1 a potom - 1286 01:05:50,050 --> 01:05:53,140 ROB: Áno, môžete. 1287 01:05:53,140 --> 01:05:57,200 Môžeme skutočne ukázať, že akonáhle budeme opraviť chybu, že som asi 1288 01:05:57,200 --> 01:06:00,050 diskutovať s vami všetkými. 1289 01:06:00,050 --> 01:06:03,470 Všimnite si, že poradie ideme nad vecami. 1290 01:06:03,470 --> 01:06:10,570 Vzhľadom k tejto binárne reprezentácie, začíname s nultého bitu. 1291 01:06:10,570 --> 01:06:13,010 Ak je 0, potom sme sa tlače - 1292 01:06:13,010 --> 01:06:15,620 dobre, to je 0, takže sme tlače 0. 1293 01:06:15,620 --> 01:06:16,860 Potom ideme do druhého bitu. 1294 01:06:16,860 --> 01:06:19,100 Je 0, takže vytlačiť 0. 1295 01:06:19,100 --> 01:06:20,290 Potom ideme na tretiu bit. 1296 01:06:20,290 --> 01:06:22,950 Je 1, takže tlače 1. 1297 01:06:22,950 --> 01:06:24,580 ALI: Tak to bude opačne. 1298 01:06:24,580 --> 01:06:27,906 Tak ako si chalani ukazujú, že sme to napraviť a ísť na druhú stranu? 1299 01:06:27,906 --> 01:06:28,900 SPEAKER 49: [Nepočuteľné] 1300 01:06:28,900 --> 01:06:29,490 ROB: Jo. 1301 01:06:29,490 --> 01:06:34,500 Takže namiesto toho, aby šiel od 0 do numBits, pôjdeme z numBits bitov na 0. 1302 01:06:34,500 --> 01:06:35,600 ALI: Tak [Nepočuteľné] 1303 01:06:35,600 --> 01:06:36,940 môže vždy ísť inou cestou. 1304 01:06:36,940 --> 01:06:38,970 ROB: NumBits mínus 1, pretože to je to posledné nubmer - 1305 01:06:38,970 --> 01:06:41,160 ALI: Vzhľadom k tomu, že ide 0-31. 1306 01:06:41,160 --> 01:06:44,420 A potom budeme vždy uistite, že je to väčšie ako 0, takže nemusíte ísť 1307 01:06:44,420 --> 01:06:46,100 príliš ďaleko vpravo. 1308 01:06:46,100 --> 01:06:48,800 A potom budete vždy odpočítať od 1 do choďte doprava. 1309 01:06:48,800 --> 01:06:52,240 >> ROB: Takže teraz máme opačný slučku, a číslo je späť do tlače 1310 01:06:52,240 --> 01:06:53,586 správnym spôsobom. 1311 01:06:53,586 --> 01:06:57,560 SPEAKER 50: Ak nemáte zmeniť radenie vec taky? 1312 01:06:57,560 --> 01:06:58,810 ALI: Takže žiadne. 1313 01:07:03,810 --> 01:07:06,470 ROB: Robíme rovnaké presné operácie, s výnimkou teraz 1314 01:07:06,470 --> 01:07:07,470 v opačnom poradí. 1315 01:07:07,470 --> 01:07:14,170 Takže namiesto toho, robiť presun od numBits mínus 1 sa dostať, čo to 1316 01:07:14,170 --> 01:07:17,430 bit je, namiesto toho, aby robil, že posledná, budeme len to prvé. 1317 01:07:19,970 --> 01:07:22,970 Zmenou to až tu, ak sme obrátiť poradie všetkého 1318 01:07:22,970 --> 01:07:24,190 že sa deje vo vnútri. 1319 01:07:24,190 --> 01:07:28,610 Ale my nechceme zmeniť to, čo sa deje vo vnútri vôbec. 1320 01:07:28,610 --> 01:07:29,860 ALI: Má to zmysel? 1321 01:07:32,240 --> 01:07:33,660 Spracovanie? 1322 01:07:33,660 --> 01:07:41,200 Dobre, takže nemá niekto nejaké ďalšie koncepčné otázky? 1323 01:07:41,200 --> 01:07:45,030 ALI: Než sa pustíme do jeho bodu, ktorý je - 1324 01:07:45,030 --> 01:07:46,280 ALI: Dobre, dobre ísť. 1325 01:07:48,350 --> 01:07:53,160 ROB: Namiesto použitia j byť naše - 1326 01:07:55,780 --> 01:08:00,550 namiesto použitia j vždy posunúť o, ako jeden posun doľava j, myslím, že to, čo 1327 01:08:00,550 --> 01:08:04,120 hovoríš je rád, aby sa j používať sám. 1328 01:08:04,120 --> 01:08:09,560 Takže pre j - 1329 01:08:09,560 --> 01:08:14,656 Myslím, že je to ťažké - j = 1 << 31. 1330 01:08:14,656 --> 01:08:16,200 Je to to, čo chcem? 1331 01:08:16,200 --> 01:08:18,470 Myslím, že je to << 31. 1332 01:08:18,470 --> 01:08:22,840 j> = 1. 1333 01:08:22,840 --> 01:08:32,319 j >>, >> Isona, i & j - 1334 01:08:32,319 --> 01:08:35,620 tak teraz namiesto použitia - 1335 01:08:35,620 --> 01:08:38,370 ALI: Ste neustále v pohybe j namiesto 1336 01:08:38,370 --> 01:08:40,520 index pozrieť sa na to. 1337 01:08:40,520 --> 01:08:42,130 Nie je to tak zlé. 1338 01:08:42,130 --> 01:08:43,960 Používame podobný druh logiky. 1339 01:08:43,960 --> 01:08:46,202 Takže ak pôjdete späť - 1340 01:08:46,202 --> 01:08:50,020 oh, ale bude to stratiť. 1341 01:08:50,020 --> 01:08:51,380 Dobre, že ste len tak ho zadajte znovu. 1342 01:08:51,380 --> 01:08:56,880 Ak si všimnete, že máme 1 << j množstvo časov, a my sme boli 1343 01:08:56,880 --> 01:09:02,279 zvyšovanie j zakaždým o jeden krok, ale tentoraz miesto 1344 01:09:02,279 --> 01:09:06,010 robia prírastok j hore vnútri slučky for. 1345 01:09:06,010 --> 01:09:10,890 Takže namiesto toho, aby sa vždy pohybuje dole - 1346 01:09:10,890 --> 01:09:15,220 ROB: Prvá iterácia cyklu for, máme j je 10000. 1347 01:09:15,220 --> 01:09:20,000 Ďalšie iterácie pre sláčiky je 01000. 1348 01:09:20,000 --> 01:09:22,380 Ďalšie iterácie je, že. 1349 01:09:22,380 --> 01:09:26,800 A 1 je len tak, aby rozmnožovacie dole, kým sme narazili veľmi 1350 01:09:26,800 --> 01:09:29,729 koniec, kde teraz je to toto. 1351 01:09:29,729 --> 01:09:33,990 Druhou a 1 je bude vytlačené, a j je už vyššia 1352 01:09:33,990 --> 01:09:35,090 alebo rovné 1. 1353 01:09:35,090 --> 01:09:38,380 Mohol by som tiež klásť väčší ako 0, rovnaký rozdiel. 1354 01:09:38,380 --> 01:09:41,580 A potom, že je to ono. 1355 01:09:41,580 --> 01:09:43,720 Otázky? 1356 01:09:43,720 --> 01:09:44,760 Jo. 1357 01:09:44,760 --> 01:09:49,740 >> SPEAKER 51: [Nepočuteľné] 1358 01:09:49,740 --> 01:09:51,729 ROB: Tak to je rovnaké ako - 1359 01:09:51,729 --> 01:09:57,270 ste videli j + = 3? 1360 01:09:57,270 --> 01:10:00,960 Takže je rovnaký ako j = j + 3? 1361 01:10:00,960 --> 01:10:05,560 Môžete to urobiť prakticky ľubovoľného operátora v C. Tak j >> = 3 je 1362 01:10:05,560 --> 01:10:10,490 rovná j = j >> 3. 1363 01:10:13,980 --> 01:10:16,760 Takže pracuje tiež s operátormi bitové. 1364 01:10:16,760 --> 01:10:19,630 A ja nemal dať 31 tu. 1365 01:10:19,630 --> 01:10:23,790 Mal som dať numBits - 1. 1366 01:10:23,790 --> 01:10:25,380 ALI: Yay, žiadne magické číslo. 1367 01:10:25,380 --> 01:10:29,070 Dobre, je to 04:00, takže napriek tomu, či vy máte ísť - ale to zmysel? 1368 01:10:29,070 --> 01:10:30,320 Myslíte si, chlapci majú nejaké ďalšie otázky? 1369 01:10:33,920 --> 01:10:38,470 ROB: Bol som tiež bude hodiť v tom, že ak by sme chceli - 1370 01:10:38,470 --> 01:10:41,326 sa on diskutoval trojica operátor vôbec? 1371 01:10:41,326 --> 01:10:42,730 ALI: Nie 1372 01:10:42,730 --> 01:10:45,090 To je v poriadku. 1373 01:10:45,090 --> 01:10:46,970 ROB: Takže by ste sa mohli pozrieť na to pre nabudúce. 1374 01:10:51,030 --> 01:10:52,080 ALI: Dobre, naozaj? 1375 01:10:52,080 --> 01:10:53,150 Teraz ste len predvádza. 1376 01:10:53,150 --> 01:10:54,210 ROB: Nie, teraz to - 1377 01:10:54,210 --> 01:11:00,490 To je to, čo dostane ľudia záujem, a teraz sa pôjdem pozrieť do toho. 1378 01:11:00,490 --> 01:11:02,640 Takže teraz, že robí to isté, v jednom kroku. 1379 01:11:05,150 --> 01:11:10,950 Takže najprv skontrolujte, je aj a j 1? 1380 01:11:10,950 --> 01:11:12,530 Je to pravda? 1381 01:11:12,530 --> 01:11:17,000 Ak áno, vytlačiť 1, inak, vytlačte 0. 1382 01:11:17,000 --> 01:11:19,190 ALI: Ale robí to na druhú stranu je úplne v poriadku rovnako. 1383 01:11:19,190 --> 01:11:20,920 To má rovnakú logiku. 1384 01:11:20,920 --> 01:11:22,730 Takže to nie je ako človek - 1385 01:11:22,730 --> 01:11:24,620 ROB: V tomto bode, môžeme sa zbaviť tých zložených zátvoriek, pretože je to len 1386 01:11:24,620 --> 01:11:27,190 jedna linka pre sláčiky. 1387 01:11:27,190 --> 01:11:29,370 ALI: Dobre, tak to má zmysel? 1388 01:11:29,370 --> 01:11:30,370 To bolo docela skok. 1389 01:11:30,370 --> 01:11:34,870 Ale to bolo len trochu syntaxe, viac. 1390 01:11:34,870 --> 01:11:36,250 >> V pohode? 1391 01:11:36,250 --> 01:11:37,500 Nejaké ďalšie otázky? 1392 01:11:40,880 --> 01:11:41,570 ROB: Dobre. 1393 01:11:41,570 --> 01:11:42,310 ALI: Dobre, v pohode. 1394 01:11:42,310 --> 01:11:43,560 Vďaka, že ste prišli do sekcie.