1 00:00:01,984 --> 00:00:07,450 [Powered by Google Translate] [ELEKTRONIESE STATIESE SOUNDS] 2 00:00:07,450 --> 00:00:11,320 ROB: Okay, so wat ons net het julle gebring is CS50 Ruimtes. 3 00:00:11,320 --> 00:00:12,325 ALI: Wag, wag back-up. 4 00:00:12,325 --> 00:00:13,175 Welkom artikel! 5 00:00:13,175 --> 00:00:13,860 ROB: Welkom artikel! 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: Ek is Ali en dit is Rob. 9 00:00:18,610 --> 00:00:20,680 Okay, nou sal ons verduidelik Ruimtes. 10 00:00:20,680 --> 00:00:23,650 ROB: So wat ons nou het julle gebring is CS50 Ruimtes. 11 00:00:23,650 --> 00:00:29,260 Jy sal gebruik word om hierdie 'n baie in jou afdelings hierdie semester. 12 00:00:29,260 --> 00:00:32,110 Basies, het ons reeds het jy die aflaai van die toestel. 13 00:00:32,110 --> 00:00:38,630 En jy kan dink van CS50 Ruimtes as 'n web koppelvlak praat met 'n toestel 14 00:00:38,630 --> 00:00:40,670 dat ons iewers op 'n paar bediener. 15 00:00:40,670 --> 00:00:42,990 So jy kan jou kode hardloop in hierdie koppelvlak, en ons sal 16 00:00:42,990 --> 00:00:44,180 sien hoe om dinge te doen. 17 00:00:44,180 --> 00:00:48,200 Jy kan ook kyk na die kode van die ander mense in die afdeling, en - 18 00:00:48,200 --> 00:00:51,920 ALI: En as sommige mense uitgevind het, jy kan klets mense op die kant. 19 00:00:51,920 --> 00:00:54,230 En ons almal sien dit ook, so wat is opwindend. 20 00:00:54,230 --> 00:00:55,655 Kom in, kom sit. 21 00:00:55,655 --> 00:00:57,060 Neem 'n sitplek. 22 00:00:57,060 --> 00:00:57,840 >> ROB: So, afdelings is - 23 00:00:57,840 --> 00:00:59,380 ALI: Nee, nee, julle kan kom. 24 00:00:59,380 --> 00:01:03,356 ROB: Artikels gaan wees baie meer interaktiewe hierdie semester. 25 00:01:03,356 --> 00:01:04,180 ALI: O, hy is soos - 26 00:01:04,180 --> 00:01:05,840 Oh. 27 00:01:05,840 --> 00:01:07,530 Okay, cool. 28 00:01:07,530 --> 00:01:15,630 So as julle ouens is net kom in, kan jy gaan na hierdie skakel, as ek kan kry 29 00:01:15,630 --> 00:01:20,190 daar, reg daar. 30 00:01:20,190 --> 00:01:22,780 Ons kan nie regtig skryf dit, want daar is nie raad ruimte, maar hierdie skakel 31 00:01:22,780 --> 00:01:27,160 reg hier, gaan op jou rekenaars, en jy sal ingaan CS50 32 00:01:27,160 --> 00:01:29,810 Ruimtes, wat is 'n pretty cool ding. 33 00:01:32,460 --> 00:01:33,830 Okay. 34 00:01:33,830 --> 00:01:35,370 Het jy 'n probleem? 35 00:01:35,370 --> 00:01:39,930 ROB: So jy kan die probleme te vind - 36 00:01:39,930 --> 00:01:42,720 ons nodig het om in staat wees om hierdie iewers te skryf. 37 00:01:42,720 --> 00:01:50,040 So as jy gaan aan cs50.net/psets en dit is die hacker supersection - 38 00:01:50,040 --> 00:01:55,870 en jy gaan in die Hacker Edition van pset een, kyk na die spesifikasie 39 00:01:55,870 --> 00:01:57,620 iewers op bladsy - 40 00:02:01,940 --> 00:02:04,280 >> ALI: So basies, terwyl Rob se soek, wat ons gaan doen in 41 00:02:04,280 --> 00:02:06,650 artikel vandag is daar is 'n deel van die probleme - 42 00:02:06,650 --> 00:02:07,600 ROB: - op bladsy agt. 43 00:02:07,600 --> 00:02:09,300 ALI: - 'n afdeling van probleme genoem - 44 00:02:09,300 --> 00:02:10,280 ROB: Artikel vrae. 45 00:02:10,280 --> 00:02:11,630 ALI: Jammer, 'n afdeling van vrae. 46 00:02:11,630 --> 00:02:14,450 En dit is wat ons gaan om te gaan oor - 47 00:02:14,450 --> 00:02:16,370 dit is wat ons gaan om te gaan oor vandag in artikel. 48 00:02:16,370 --> 00:02:20,010 En ons gaan om dit te kode op CS50 Ruimtes, en hopelik wat sal werk. 49 00:02:20,010 --> 00:02:22,210 En ons kan net praat deur hulle. 50 00:02:22,210 --> 00:02:24,510 En julle vrae kan vra wanneer jy voel - 51 00:02:24,510 --> 00:02:27,890 >> ROB: So dit is om 'n algemene ding met die meeste psets. 52 00:02:27,890 --> 00:02:31,000 Ek dink met hierdie een, dit sê jy nie hierdie vrae in te handig. 53 00:02:31,000 --> 00:02:36,780 Maar die idee is dat hierdie vrae gestel word op die pset, en jy kan kom 54 00:02:36,780 --> 00:02:39,790 te beantwoord artikel om hierdie vrae te hê. 55 00:02:39,790 --> 00:02:42,730 Of as jy kom nie na artikel, kan jy hulle antwoord op jou eie of kry 56 00:02:42,730 --> 00:02:44,250 help by die kantoor ure of iets. 57 00:02:44,250 --> 00:02:47,540 Maar hierdie is vrae wat veronderstel is om te prep vir jou die probleem stel. 58 00:02:47,540 --> 00:02:50,910 En op die hacker uitgawe, 'n baie van die vrae dalk net wees oor 59 00:02:50,910 --> 00:02:54,170 die uitbreiding van jou huidige CS kennis. 60 00:02:54,170 --> 00:02:55,370 ALI: Yep, pretty much. 61 00:02:55,370 --> 00:02:57,950 >> Okay, so is almal op CS50 Spaces? 62 00:02:57,950 --> 00:02:59,457 Hi, kom in 63 00:02:59,457 --> 00:03:00,828 Spreker 1: Kan ons die URL sien een keer? 64 00:03:04,030 --> 00:03:07,000 Rob: Ja, dit sal makliker wees wanneer jy eintlik in jou artikels en 65 00:03:07,000 --> 00:03:10,760 jou TF kan u 'n e-pos net die URL vooraf. 66 00:03:10,760 --> 00:03:11,870 ALI: Yay, neem 'n sitplek. 67 00:03:11,870 --> 00:03:13,170 Daar nog sitplekke hier. 68 00:03:13,170 --> 00:03:14,420 Die voorkant is nie so sleg nie. 69 00:03:17,112 --> 00:03:18,362 Wat? 70 00:03:20,650 --> 00:03:23,590 So, CS50 Ruimtes, ons kry daar. 71 00:03:23,590 --> 00:03:26,760 Is daar iemand enige vrae voordat ons in - wat? 72 00:03:26,760 --> 00:03:28,060 ROB: Daar is nie eens 'n kryt. 73 00:03:28,060 --> 00:03:29,270 [Onhoorbaar] 74 00:03:29,270 --> 00:03:31,540 ALI: Jammer. 75 00:03:31,540 --> 00:03:32,950 Jy kan gebruik om jou naels? 76 00:03:32,950 --> 00:03:38,210 Ons is in 'n baie lae-tech ruimte vir 'n baie hoë-tegnologie klas. 77 00:03:38,210 --> 00:03:40,795 Okay, is almal soort van 'n goeie? 78 00:03:40,795 --> 00:03:44,310 Is daar iemand nog vrae daaroor? 79 00:03:44,310 --> 00:03:48,540 Soos ek gesê het, ons gaan om te gaan deur middel van die afdeling van die vrae in 80 00:03:48,540 --> 00:03:51,340 die pset spesifikasies. 81 00:03:51,340 --> 00:03:53,490 So daar is net 'n paar van die probleme wat ons gaan 82 00:03:53,490 --> 00:03:57,490 kodeer in CS50 Ruimtes. 83 00:03:57,490 --> 00:03:58,740 Is almal goeie? 84 00:04:01,010 --> 00:04:01,360 Okay. 85 00:04:01,360 --> 00:04:02,312 Goed kan gaan? 86 00:04:02,312 --> 00:04:04,260 ROB: Het jy 'n laptop? 87 00:04:04,260 --> 00:04:05,150 ALI: Jy kan uithang met Lucas. 88 00:04:05,150 --> 00:04:06,960 Hy is reg langs jou sit. 89 00:04:06,960 --> 00:04:10,030 Bonding tyd. 90 00:04:10,030 --> 00:04:10,990 >> ROB: So, begin met die eerste probleem? 91 00:04:10,990 --> 00:04:11,260 ALI: Ja. 92 00:04:11,260 --> 00:04:11,820 Ons kan begin. 93 00:04:11,820 --> 00:04:12,390 Wil jy my - 94 00:04:12,390 --> 00:04:13,700 Ek kan gaan. 95 00:04:13,700 --> 00:04:16,666 So, sal ons gaan na die pset specs. 96 00:04:16,666 --> 00:04:17,640 O, waarom is dit - 97 00:04:17,640 --> 00:04:18,890 ROB: Control. 98 00:04:21,769 --> 00:04:25,770 ALI: Okay, so gaan ons in antwoord hierdie dinge so goed? 99 00:04:25,770 --> 00:04:26,190 ROB: O, ja. 100 00:04:26,190 --> 00:04:27,280 So - 101 00:04:27,280 --> 00:04:29,675 ALI: Ag, het almal kyk Rob se hoofrol kortbroek? 102 00:04:32,430 --> 00:04:33,360 Okay, cool. 103 00:04:33,360 --> 00:04:36,870 ROB: Ja, ek dink nie ons noodwendig verwag jy te hê 104 00:04:36,870 --> 00:04:40,650 gekyk het dit voor die aangesig van hierdie artikel kom nie, maar ons kan bespreek wat 105 00:04:40,650 --> 00:04:43,870 probleme vooraf, want hulle is onder die afdeling van die vrae dinge. 106 00:04:43,870 --> 00:04:46,480 So as jy dit nog nie gekyk het, moenie worry nie. 107 00:04:46,480 --> 00:04:48,630 Diegene wat kan probeer beantwoord. 108 00:04:48,630 --> 00:04:53,875 >> Dus, die eerste vraag, wat is 'n pre-verwerker, hoe # include 109 00:04:53,875 --> 00:04:56,080 verband? 110 00:04:56,080 --> 00:04:58,440 So nie almal antwoord vir wat? 111 00:04:58,440 --> 00:04:59,320 ALI: Julle kan praat dit uit. 112 00:04:59,320 --> 00:05:00,308 Sure, voort te gaan. 113 00:05:00,308 --> 00:05:03,766 Spreker 2: # include is 'n paar pre-geskryf kode, en in plaas van 114 00:05:03,766 --> 00:05:08,706 kopieer en plak dit in jou program, deur net te sê, sluit dit, 115 00:05:08,706 --> 00:05:14,140 die pre-verwerker weet dat dit daar is en dat dit moet voeg dit in 116 00:05:14,140 --> 00:05:17,520 later of voor enigiets anders gebeur. 117 00:05:17,520 --> 00:05:18,466 ALI: Ja, awesome. 118 00:05:18,466 --> 00:05:19,440 Cool. 119 00:05:19,440 --> 00:05:23,820 ROB: So wanneer jy eintlik die opstel van 'n program, die pre-verwerker is dit 120 00:05:23,820 --> 00:05:25,230 eerste stap. 121 00:05:25,230 --> 00:05:27,620 Samestelling gebeur in vier groot stappe. 122 00:05:27,620 --> 00:05:31,120 So het die pre-verwerker is die eerste groot een, en dit is hierdie man wat gaan 123 00:05:31,120 --> 00:05:33,510 deur en kyk vir alle van hierdie hash simbole. 124 00:05:33,510 --> 00:05:36,610 En enige lyn wat begin met 'n hash, die pre-verwerker kyk na dit en sien 125 00:05:36,610 --> 00:05:37,880 as dit kan verwerk. 126 00:05:37,880 --> 00:05:43,800 So # include vertel die pre-verwerker om te kyk vir 'n paar cs50.h 127 00:05:43,800 --> 00:05:47,830 liasseer en net kopieer en plak die inhoud in hierdie lêer. 128 00:05:47,830 --> 00:05:50,970 So kan jy # regtig enigiets wat jy wil, maar dit is meestal gaan wees 129 00:05:50,970 --> 00:05:53,700 H lêers. 130 00:05:53,700 --> 00:05:55,820 Ons is nie gekry het # nog definieer, so dit maak nie saak. 131 00:05:55,820 --> 00:05:57,620 ALI: Ja, ons is goed op daardie een. 132 00:05:57,620 --> 00:05:59,450 Is daar iemand enige vrae oor wat? 133 00:05:59,450 --> 00:06:01,090 Is ons 'n goeie? 134 00:06:01,090 --> 00:06:02,430 Volgende vraag. 135 00:06:02,430 --> 00:06:07,096 >> SPREKER 3: In die kort, daar was iets omtrent c sowel. 136 00:06:07,096 --> 00:06:09,110 Is dit relevant is of is dit irrelevant? 137 00:06:09,110 --> 00:06:11,210 ROB: Oor c met die pre-verwerker.? 138 00:06:11,210 --> 00:06:13,990 SPREKER 3: Ja, of het ek iets? 139 00:06:13,990 --> 00:06:18,290 ROB: So die kort kon gewees het wat die pre-verwerking van hierdie lêer en 140 00:06:18,290 --> 00:06:24,240 . printer dit na 'n ander c lêer, sodat jy kan vooraf hierdie lêer verwerk - 141 00:06:24,240 --> 00:06:30,000 wanneer jy loop net soos, maak hallo of kletteren hello.c, doen jy alle 142 00:06:30,000 --> 00:06:31,730 die samestelling in 'n groot stap. 143 00:06:31,730 --> 00:06:34,780 Maar jy kan doen dit uitdruklik in sy afsonderlike stappe. 144 00:06:34,780 --> 00:06:36,950 So jy kan eers vooraf verwerk. 145 00:06:36,950 --> 00:06:42,260 Dan kan jy stel, dan kan jy versamel, en dan kan jy 'n skakel. 146 00:06:42,260 --> 00:06:43,620 Ons kry aan die ander kinders. 147 00:06:43,620 --> 00:06:47,410 Maar pre-verwerking, jy soort van pre-proses, en dan gaan dit in 148 00:06:47,410 --> 00:06:49,270 ander c-lêer. 149 00:06:49,270 --> 00:06:51,430 Omdat pre-verwerking nie regtig verander nie. 150 00:06:51,430 --> 00:06:52,800 Dit is net 'n klomp van kopie en plak. 151 00:06:52,800 --> 00:06:56,760 Jy kan met die hand kopieer en plak dit self. 152 00:06:56,760 --> 00:06:59,630 ALI: En om duidelik te wees, die c-lêer is 'n C-lêer, so dit is 153 00:06:59,630 --> 00:07:00,930 geskryf in C-kode. 154 00:07:00,930 --> 00:07:03,300 So dit gaan van C-kode C-kode. 155 00:07:03,300 --> 00:07:05,210 Jy voeg net meer kode met die pond. 156 00:07:05,210 --> 00:07:08,575 ROB: Wanneer jy vooraf verwerk dit, dit is nog steeds 'n geldige C lêer. 157 00:07:08,575 --> 00:07:09,940 SPREKER 3: Goed. 158 00:07:09,940 --> 00:07:10,540 ALI: Goeie vraag. 159 00:07:10,540 --> 00:07:11,370 Ek hou daarvan. 160 00:07:11,370 --> 00:07:12,755 Okay, volgende vraag. 161 00:07:17,870 --> 00:07:19,660 >> Wat is die vertaler? 162 00:07:19,660 --> 00:07:20,824 Iemand? 163 00:07:20,824 --> 00:07:21,286 Ja. 164 00:07:21,286 --> 00:07:24,650 SPREKER 4: Dit verander die pre-verwerkte kode in die vergadering. 165 00:07:24,650 --> 00:07:25,110 ALI: Perfect. 166 00:07:25,110 --> 00:07:25,390 ROB: Ja. 167 00:07:25,390 --> 00:07:25,720 ALI: Cool. 168 00:07:25,720 --> 00:07:28,270 ROB: So dit is wat die samesteller spesifiek doen 169 00:07:28,270 --> 00:07:30,740 wanneer ons kletteren jy gebruik. 170 00:07:30,740 --> 00:07:35,100 In 'n baie algemene sin, 'n vertaler is, net soos wat in een taal kode 171 00:07:35,100 --> 00:07:37,070 en draai dit in 'n ander taal. 172 00:07:37,070 --> 00:07:38,370 Dus, in C - 173 00:07:38,370 --> 00:07:43,750 of, goed, klang neem kode wat in C is en die transformasie van dit aan die vergadering. 174 00:07:43,750 --> 00:07:46,560 En jy hoef nie in staat te wees om die gemeente te verstaan. 175 00:07:46,560 --> 00:07:49,830 Maar dit is die taal wat dit draai in. 176 00:07:49,830 --> 00:07:50,230 >> ALI: Goed. 177 00:07:50,230 --> 00:07:52,920 En dan, wat is 'n assembler? 178 00:07:52,920 --> 00:07:54,270 Iemand? 179 00:07:54,270 --> 00:07:56,810 SPREKER 5: [onhoorbaar] binêre? 180 00:07:56,810 --> 00:07:57,260 ALI: Jammer, wat? 181 00:07:57,260 --> 00:07:58,760 SPREKER 5: [onhoorbaar] binêre? 182 00:07:58,760 --> 00:07:59,260 ROB: Yep. 183 00:07:59,260 --> 00:07:59,880 ALI: Ja. 184 00:07:59,880 --> 00:08:01,960 ROB: So het die assembler - 185 00:08:01,960 --> 00:08:05,830 vergadering kode is regtig, regtig naby aan wat jou rekenaar kan verstaan, 186 00:08:05,830 --> 00:08:09,390 maar onthou dat dit nie heeltemal verstaan ​​die teks 187 00:08:09,390 --> 00:08:10,630 wat gemeente-kode. 188 00:08:10,630 --> 00:08:14,570 Wat jy nodig het om dit te omskep in reguit 1s en 0s. 189 00:08:14,570 --> 00:08:17,000 Dit is soos 'n direkte vertaling proses. 190 00:08:17,000 --> 00:08:19,450 Ons kan net gee jou 'n tabel wat die kaarte wat elke 191 00:08:19,450 --> 00:08:21,880 vergadering opdrag beteken. 192 00:08:21,880 --> 00:08:24,340 Maar die assembler is net hierdie vertaling te doen vir jou. 193 00:08:24,340 --> 00:08:28,790 Dit is die transformasie van die vergadering kode in 1s en 0S. 194 00:08:28,790 --> 00:08:30,870 >> ALI: En dan, vir die laaste een, wat is 'n koppelingshistoon? 195 00:08:30,870 --> 00:08:35,070 En hoe-lcs50 verband? 196 00:08:35,070 --> 00:08:37,010 Iemand? 197 00:08:37,010 --> 00:08:41,440 ROB: Dit is die moeilikste en die minste verduidelik een in die samesteller video. 198 00:08:41,440 --> 00:08:48,980 ALI: Is daar iemand onthou dat lcs50 in 'n opdrag? 199 00:08:48,980 --> 00:08:50,690 SPREKER 6: As jy na die maak. 200 00:08:50,690 --> 00:08:51,980 ALI: Dit is in die maak. 201 00:08:51,980 --> 00:08:55,780 Ja, koel, okay. 202 00:08:55,780 --> 00:09:02,024 Is daar enige raaiskote of vaag - ja, gaan. 203 00:09:02,024 --> 00:09:06,370 SPEAKER 7: Ek is nie seker nie, want jou kort was regtig [onhoorbaar], maar was dit 204 00:09:06,370 --> 00:09:12,244 iets oor die afsonderlike lêers te doen met elke biblioteek en dan om 205 00:09:12,244 --> 00:09:13,620 hulle almal saam in 'n biblioteek? 206 00:09:13,620 --> 00:09:14,400 ROB: Ja. 207 00:09:14,400 --> 00:09:23,000 So wanneer jy 'hello.c, dit is 'n baie eenvoudige program. 208 00:09:23,000 --> 00:09:25,570 Jy is eintlik net een ding doen in dit. 209 00:09:25,570 --> 00:09:27,400 Maar wanneer jy in ander programme - 210 00:09:27,400 --> 00:09:31,700 en ek dink selfs wanneer jy GetString in jou programme, wat jy nodig het om te begin 211 00:09:31,700 --> 00:09:33,830 met inbegrip van ander lêers. 212 00:09:33,830 --> 00:09:38,000 So het die CS50 biblioteek is een so 'n lêer waarin ons die implementasies 213 00:09:38,000 --> 00:09:40,750 GetString en getint en al daardie dinge. 214 00:09:40,750 --> 00:09:45,540 So, wat die koppelingshistoon doen, is dit gaan rond op soek deur al hierdie 215 00:09:45,540 --> 00:09:49,400 lêers, sien waar funksies word gedefinieer, om seker te maak dat as ek roep 216 00:09:49,400 --> 00:09:52,440 GetString iewers, dit weet dat GetString beteken dat dit die 217 00:09:52,440 --> 00:09:54,910 GetString in die CS50 biblioteek. 218 00:09:54,910 --> 00:09:58,895 So het die koppelingshistoon neem net al hierdie lêers, breek hulle saam, en nou 219 00:09:58,895 --> 00:10:01,020 jy het 'n uitvoerbare. 220 00:10:01,020 --> 00:10:05,600 So hou in gedagte, as jy gebruik die CS50 biblioteek, moet u die 221 00:10:05,600 --> 00:10:10,370 # Sluit by die top, en dan ook in jou maak bevel, as jy 222 00:10:10,370 --> 00:10:12,630 gesê, jy het die lcs50 te hê. 223 00:10:12,630 --> 00:10:15,720 So jy kan nie net een het. 224 00:10:15,720 --> 00:10:18,294 So dit is net iets om in gedagte te hou vir toekomstige verwysing. 225 00:10:18,294 --> 00:10:22,550 >> SPEAKER 8: So, laat ons sê daar was 'n ander biblioteek, soos cs51.h, sou ons 226 00:10:22,550 --> 00:10:26,780 ook by te voeg lcs51? 227 00:10:26,780 --> 00:10:32,390 ROB: Die enigste rede waarom hierdie lcs50 werk perfek is, want ons het daardie stel 228 00:10:32,390 --> 00:10:35,800 in 'n spesifieke plek in jou toestelle, sodat hulle weet wat 229 00:10:35,800 --> 00:10:38,550 -Lcs50 middel. 230 00:10:38,550 --> 00:10:43,240 Ons kan net gee jou 'n cs50.c lêer, en dan kan jy dit stel, sê 231 00:10:43,240 --> 00:10:49,050 Kletteren hello.c cs50.c, en dan is dit jou uitvoerbaar te maak deur om 232 00:10:49,050 --> 00:10:50,350 hierdie twee lêers saam. 233 00:10:50,350 --> 00:10:56,520 Dit weet dat-lcs50 beteken cs50.c oor in sommige directory dat ons wat in 234 00:10:56,520 --> 00:10:58,350 jou toestelle. 235 00:10:58,350 --> 00:11:04,290 So as jy wou 'n cs51.c te wees deur net sê-lcs51 specifiable, 236 00:11:04,290 --> 00:11:06,760 dan sou ons ook nodig het om dit te sit in daardie gids sodat dit weet waar om te 237 00:11:06,760 --> 00:11:08,636 kyk vir dit. 238 00:11:08,636 --> 00:11:10,510 ALI: Wat was jou vraag? 239 00:11:10,510 --> 00:11:13,975 >> SPEAKER 7: Hoekom dink jy het die CS50 te koppel 240 00:11:13,975 --> 00:11:18,940 indien - wasn't dit kopieer / geplak by die eerste stap wanneer jy pre-verwerk is? 241 00:11:18,940 --> 00:11:19,700 ALI: Wil jy dit te neem? 242 00:11:19,700 --> 00:11:20,880 ROB: Seker nie. 243 00:11:20,880 --> 00:11:28,028 So is die cs50.h lêer apart van die cs50.c C lêer. 244 00:11:28,028 --> 00:11:33,652 Het jy al prototipes te funksioneer in die klas? 245 00:11:33,652 --> 00:11:34,350 Okay. 246 00:11:34,350 --> 00:11:40,255 So basies, die cs50.h lêer is net gaan om te kopieer en plak - 247 00:11:40,255 --> 00:11:44,040 ALI: Moenie julle ouens weet wat die handtekeninge is? 248 00:11:44,040 --> 00:11:46,580 Okay, so pretty much, as jy kyk na - 249 00:11:46,580 --> 00:11:50,530 ROB: Let's voorgee cs50.h is nie daar nie. 250 00:11:50,530 --> 00:11:52,960 Nou hierdie lêer - 251 00:11:52,960 --> 00:11:56,090 jy doen string s = GetString. 252 00:11:56,090 --> 00:11:59,350 Maar wanneer ons gekry het tot op hierdie punt in die kode, dit het geen idee wat 253 00:11:59,350 --> 00:12:00,230 GetString is. 254 00:12:00,230 --> 00:12:02,600 Dit weet dit is 'n funksie, aangesien jy noem dit. 255 00:12:02,600 --> 00:12:06,500 Maar dit beteken nie weet dat dit is eintlik veronderstel om 'n string om terug te keer. 256 00:12:06,500 --> 00:12:14,530 En soos ek sê, string s = getint, beteken dit nie sin maak nie, aangesien 257 00:12:14,530 --> 00:12:17,530 jy die ondertekening van 'n heelgetal aan 'n string. 258 00:12:17,530 --> 00:12:22,270 Maar dit beteken nie weet dat GetString sin maak nie, omdat dit nie 259 00:12:22,270 --> 00:12:24,380 weet dat GetString 'n string. 260 00:12:24,380 --> 00:12:28,220 So, wat cs50.h sê is iets soos hierdie. 261 00:12:33,070 --> 00:12:37,750 ALI: So wat Rob tik is, dit is 'n belofte in 'n manier wat dit gaan 262 00:12:37,750 --> 00:12:41,280 het hierdie funksie geroep GetString. 263 00:12:41,280 --> 00:12:45,250 ROB: Dit is al wat cs50.h kopieer en plak hier, asook 264 00:12:45,250 --> 00:12:47,620 getint en al daardie dinge. 265 00:12:47,620 --> 00:12:51,520 En dit sê net dat GetString nie 'n string terug. 266 00:12:51,520 --> 00:12:54,830 Jy weet nie hoe dit is nog nie geïmplementeer nie, maar wanneer ons in hierdie lyn, nou 267 00:12:54,830 --> 00:12:57,760 dit weet dat dit korrek 'n string. 268 00:12:57,760 --> 00:13:03,022 >> SPEAKER 9: So as ons het nie die moeite met die # ding en in plaas daarvan 269 00:13:03,022 --> 00:13:07,130 net die prototipe vir die wat geskryf het dat ons eintlik gaan om te gebruik? 270 00:13:07,130 --> 00:13:07,330 ROB: Ja. 271 00:13:07,330 --> 00:13:08,870 So kom ons hardloop hierdie. 272 00:13:08,870 --> 00:13:09,110 SPEAKER 9: Is dit? 273 00:13:09,110 --> 00:13:13,670 Dus, by verstek, sou dit die-l doen om CS50 net omdat - 274 00:13:13,670 --> 00:13:14,740 ROB: - uitdrukking. 275 00:13:14,740 --> 00:13:19,370 ALI: Ja, want soos jy sê, dit is in die fabrikaat lêer. 276 00:13:19,370 --> 00:13:24,040 ROB: cs50.h gebeur ook typedef char * string. 277 00:13:24,040 --> 00:13:26,950 Jy kan heeltemal ignoreer wat dit beteken vir nou. 278 00:13:26,950 --> 00:13:31,430 Maar dit is ook iets ingesluit in cs50.h. 279 00:13:31,430 --> 00:13:34,230 So nou is dinge heeltemal fyn gewerk. 280 00:13:34,230 --> 00:13:40,770 Dit loop presies dieselfde as wat dit was toe ons moes net 281 00:13:40,770 --> 00:13:45,120 die # sluit. 282 00:13:45,120 --> 00:13:49,200 En so cs50.h gebeur met oor-sluit dinge wat jy nodig het - 283 00:13:49,200 --> 00:13:53,080 hou nie, doen jy nie die getint in hierdie program gebruik, maar dit maak nie saak. 284 00:13:53,080 --> 00:13:55,010 Dit sal net ignoreer dit. 285 00:13:55,010 --> 00:14:02,400 ALI: En dan wanneer jy die lcs50 hier en hier, wat gaan 286 00:14:02,400 --> 00:14:05,290 is dat dit met die werklike implementeerbare kode. 287 00:14:05,290 --> 00:14:07,530 So dit is waar dit eintlik is, doen die 288 00:14:07,530 --> 00:14:09,090 die skryf van die kode vir GetString. 289 00:14:09,090 --> 00:14:11,180 So dit is nie net 'n belofte nie. 290 00:14:11,180 --> 00:14:16,520 Dit is eintlik gaan en neem die tou en al daardie dinge. 291 00:14:16,520 --> 00:14:17,600 Sin maak? 292 00:14:17,600 --> 00:14:22,640 Vrae? Alles reg. 293 00:14:22,640 --> 00:14:24,466 Cool bone. 294 00:14:24,466 --> 00:14:27,630 >> ROB: Nou kan ons aanbeweeg na die werklike kode. 295 00:14:27,630 --> 00:14:28,780 ALI: Goed. 296 00:14:28,780 --> 00:14:33,340 So hier is die eerste probleem. 297 00:14:33,340 --> 00:14:36,910 So dit sê skryf 'n program wat die gebruiker vir 'n klein gevra 298 00:14:36,910 --> 00:14:40,540 brief en dan vat dit na 'n hoofletter sonder die gebruik van bis- 299 00:14:40,540 --> 00:14:43,590 bedrywighede, soos per die onderstaande voorbeeld van die uitvoer. 300 00:14:43,590 --> 00:14:48,780 Sodat jy kan sien, jy hardloop die program met die / a.out., En dan is jy 301 00:14:48,780 --> 00:14:53,320 gaan sit in kleinletter a, en dan jou program moet uit kapitaal 302 00:14:53,320 --> 00:15:00,590 A. So hoekom julle nie almal gee dit 'n skoot op CS50 Spaces? 303 00:15:00,590 --> 00:15:03,360 Sodat julle kan almal hier. 304 00:15:03,360 --> 00:15:06,650 En jy kan al die kode verwyder hier. 305 00:15:06,650 --> 00:15:12,140 En dan kan jy gaan voort en begin kodering die ding. 306 00:15:12,140 --> 00:15:14,590 ROB: Jy sal waarskynlik wil getChar te gebruik, dit is 307 00:15:14,590 --> 00:15:16,190 ingesluit in die CS50 biblioteek. 308 00:15:16,190 --> 00:15:18,770 ALI: Ek dink dit sou beter wees as jy die boonste gedeelte red. 309 00:15:21,452 --> 00:15:23,805 Sodat jy dalk wil om net die dinge wat in die middel verander. 310 00:15:28,710 --> 00:15:29,070 Gaan voort en werk. 311 00:15:29,070 --> 00:15:30,530 Voel vry om te werk met mekaar. 312 00:15:30,530 --> 00:15:32,360 Rob: En jy vrae kan vra as jy het - 313 00:15:32,360 --> 00:15:33,450 >> SPREKER 10: Wat is 'n bis werking? 314 00:15:33,450 --> 00:15:35,100 ROB: So, ignoreer dat vir hierdie probleem. 315 00:15:35,100 --> 00:15:36,330 ALI: As jy dit nie weet nie, is dit goed. 316 00:15:36,330 --> 00:15:38,300 ROB: Ons gaan om dit te gebruik in die volgende probleem. 317 00:15:38,300 --> 00:15:40,750 Maar as jy nie weet wat 'n bis-operateur is, is dit goed. 318 00:15:40,750 --> 00:15:43,575 SPREKER 10: Is dit soos om dit te ASCII-kode? 319 00:15:43,575 --> 00:15:44,050 ALI: No 320 00:15:44,050 --> 00:15:44,750 ROB: No 321 00:15:44,750 --> 00:15:46,220 Jy kan dit doen vir hierdie probleem. 322 00:15:46,220 --> 00:15:48,280 SPREKER 10: Hoe doen jy dit? 323 00:15:48,280 --> 00:15:52,460 So as ek net moes iewers te skryf - 324 00:15:52,460 --> 00:15:54,670 ALI: Of iets te skryf. 325 00:15:54,670 --> 00:15:56,780 ROB: Ek kon net soort van die tipe in. 326 00:15:56,780 --> 00:15:59,045 ALI: Tipe aan die bokant. 327 00:15:59,045 --> 00:16:01,390 ROB: O, ek sit op 'n mic. 328 00:16:01,390 --> 00:16:10,860 >> So, ons het in die lesing wat die ASCII waarde vir kapitaal is 65. 329 00:16:10,860 --> 00:16:13,670 En kapitaal B sal wees 66, en so aan. 330 00:16:13,670 --> 00:16:20,860 So kan jy letterlik gebruik 'A' die getal 65 beteken. 331 00:16:20,860 --> 00:16:24,600 Hou nie, dit is die waarde 65. 332 00:16:24,600 --> 00:16:30,950 Ek kan iets doen soos int x = 100 - 'A'. En nou x sal die waarde 333 00:16:30,950 --> 00:16:33,810 100 - 65. 334 00:16:33,810 --> 00:16:36,708 ALI: Jy kan hardloop en wys dat. 335 00:16:36,708 --> 00:16:38,420 O, miskien nie. 336 00:16:38,420 --> 00:16:38,600 Never mind. 337 00:16:38,600 --> 00:16:40,970 ROB: Ek het om dit uit te druk. 338 00:16:40,970 --> 00:16:43,730 SPREKER 10: Hoe gaan jy dit terug karakter? 339 00:16:43,730 --> 00:16:46,800 ALI: So as jy moenie - 340 00:16:46,800 --> 00:16:51,450 jy net dwing om dit te char A, is gelyk aan. 341 00:16:51,450 --> 00:16:53,630 ROB: So daar is 'n - 342 00:16:53,630 --> 00:16:58,440 die onderskeid tussen 'n kar en 'n heelgetal is net in terme van grootte. 343 00:16:58,440 --> 00:17:01,230 So 'n heelgetal gebeur in staat te wees om dinge te verteenwoordig 344 00:17:01,230 --> 00:17:02,600 , soos, vier miljard. 345 00:17:02,600 --> 00:17:05,839 'N char is net in staat om dinge te stel tot 255. 346 00:17:05,839 --> 00:17:08,390 Maar daar is geen verskil tussen hulle anders as dit. 347 00:17:08,390 --> 00:17:12,339 Sodat jy kan sê char c = 65. 348 00:17:12,339 --> 00:17:24,204 Dit is gelykstaande aan sê char c is gelyk aan 'A'. 349 00:17:24,204 --> 00:17:25,210 ALI: O, nee. 350 00:17:25,210 --> 00:17:26,710 Dit eintlik nie red dinge. 351 00:17:26,710 --> 00:17:28,130 ROB: Nee, jy kan dit nie doen nie. 352 00:17:28,130 --> 00:17:31,610 ALI: Dit is net - 353 00:17:31,610 --> 00:17:34,920 [Kreun] 354 00:17:34,920 --> 00:17:40,700 >> ROB: Okay, so wat Ali net geskryf het, was 'n program wat die eerste 100 druk - 355 00:17:40,700 --> 00:17:46,290 'A' as 'n heelgetal, wat 35, as wat ons verwag, want 100 minus die ASCII 356 00:17:46,290 --> 00:17:48,580 waarde van A is 65. 357 00:17:48,580 --> 00:17:54,100 Toe het sy gedruk met behulp van% c, wat beteken interpreteer dit as 'n char. 358 00:17:54,100 --> 00:17:57,050 So 100 - 'n 35. 359 00:17:57,050 --> 00:18:00,990 Tolking dat as 'n karakter gebeur met die hash simbool. 360 00:18:00,990 --> 00:18:06,160 As jy kyk by asciitable.com of wat ookal, sal jy sien dat 35 is die 361 00:18:06,160 --> 00:18:07,410 hash simbool. 362 00:18:09,940 --> 00:18:12,700 ALI: Okay, enige ander verduidelijk oor die probleem? 363 00:18:16,000 --> 00:18:18,180 Okay, julle kan gaan voort en doen dit dan. 364 00:18:18,180 --> 00:18:20,330 Voel vry om vrae te vra of met mekaar praat. 365 00:18:20,330 --> 00:18:24,390 Of as jy reeds gedoen het, kan jy ontspan. 366 00:18:24,390 --> 00:18:29,640 >> LUCAS: Is hulle dieselfde klas, al die klein letters in orde is en 367 00:18:29,640 --> 00:18:32,923 ook die hoofletters is ook in orde, want dit is iets nuttigs vir 368 00:18:32,923 --> 00:18:33,990 die probleem. 369 00:18:33,990 --> 00:18:35,620 ALI: Goeie punt, Lucas. 370 00:18:35,620 --> 00:18:37,430 So, julle het almal kry wat? 371 00:18:37,430 --> 00:18:37,640 SPREKER 11: Ja. 372 00:18:37,640 --> 00:18:39,535 Dit is hoe jy dit doen nie, reg? 373 00:18:39,535 --> 00:18:39,960 ALI: Right. 374 00:18:39,960 --> 00:18:40,415 ROB: Ja. 375 00:18:40,415 --> 00:18:47,270 SPREKER 11: [onhoorbaar] 376 00:18:47,270 --> 00:18:48,330 ALI: Alle reg. 377 00:18:48,330 --> 00:18:49,350 ROB: Wat is die vraag vra? 378 00:18:49,350 --> 00:18:50,590 Net om te sit - 379 00:18:50,590 --> 00:18:52,560 ALI: Skakel die kleinletters aan die hoofletters. 380 00:18:52,560 --> 00:18:53,100 Dit is dit. 381 00:18:53,100 --> 00:18:54,700 ROB: Goed. 382 00:18:54,700 --> 00:18:56,180 ALI: Moet ons dit skryf? 383 00:18:56,180 --> 00:18:59,340 Ek dink ons ​​sal net kyk na iemand anders is. 384 00:18:59,340 --> 00:19:07,140 ROB: So vir diegene wat kan vas te word, 'n manier - 385 00:19:07,140 --> 00:19:15,160 as ek het 'n paar char c, en kom ons sê dit gebeur om die brief te wees D. 386 00:19:15,160 --> 00:19:20,760 So nou hoe kan ek uitvind wat letter van die alfabet C is? 387 00:19:20,760 --> 00:19:25,620 Nie D, maar ek bedoel, D gebeur na die vierde letter van die alfabet. 388 00:19:25,620 --> 00:19:28,910 En as ons begin tel van 0, dan is dit die derde letter van die alfabet. 389 00:19:28,910 --> 00:19:36,240 So as 'n 0, B is 1, C is 2, D is 3, hoe kan ek uitvind int posisie - 390 00:19:36,240 --> 00:19:40,780 watter posisie van die alfabet C is? 391 00:19:40,780 --> 00:19:42,333 Is daar iemand enige idees? 392 00:19:42,333 --> 00:19:45,440 ALI: Ek dink hulle is almal kodering. 393 00:19:45,440 --> 00:19:46,440 ROB: Wat oor die eerste een? 394 00:19:46,440 --> 00:19:48,608 SPREKER 12: So alles wat A is, trek die eerste een? 395 00:19:48,608 --> 00:19:49,030 ROB: Ja. 396 00:19:49,030 --> 00:19:49,950 ALI: Ja, awesome. 397 00:19:49,950 --> 00:19:51,765 So jy kan doen kapitaal D - 398 00:19:51,765 --> 00:19:52,840 oh, sorry. 399 00:19:52,840 --> 00:19:55,620 Jy neem die karakter en jy trek die eerste een, soos jy sê. 400 00:19:55,620 --> 00:20:03,940 ROB: So as D is iets soos 68, en ons aftrek A, wat 65 is, dan kry ons 401 00:20:03,940 --> 00:20:07,130 3, vertel ons dat D die derde letter van die alfabet 402 00:20:07,130 --> 00:20:09,290 vanaf 0. 403 00:20:09,290 --> 00:20:11,310 Sodat jy kan gebruik. 404 00:20:11,310 --> 00:20:13,830 Nou weet ons wat letter van die alfabet, in terme van 405 00:20:13,830 --> 00:20:16,060 hoofletters, of - 406 00:20:16,060 --> 00:20:18,330 ons kan dieselfde ding doen vir kleinletters om uit te vind wat 407 00:20:18,330 --> 00:20:20,170 onderkas posisie waarin ons is. 408 00:20:20,170 --> 00:20:25,690 En ons kan gebruik wat dan omskep na 'n hoofletter gebruik van 'n 409 00:20:25,690 --> 00:20:26,970 baie soortgelyke idee. 410 00:20:31,470 --> 00:20:32,670 Vra vir voorstelle? 411 00:20:32,670 --> 00:20:35,810 >> ALI: Het julle ouens - wag, ek weet nie hoe ver jy ouens is. 412 00:20:35,810 --> 00:20:40,060 Is die meeste van julle gedoen, jy is nog steeds werk, is jy vas? 413 00:20:40,060 --> 00:20:42,020 Julle kan uitroep - 414 00:20:42,020 --> 00:20:42,330 vas. 415 00:20:42,330 --> 00:20:43,210 Een persoon se vas. 416 00:20:43,210 --> 00:20:43,560 Cool. 417 00:20:43,560 --> 00:20:44,700 Ek is geneig om te vas, ook. 418 00:20:44,700 --> 00:20:45,415 SPREKER 13: wat ek gedoen het. 419 00:20:45,415 --> 00:20:46,410 ALI: U gedoen? 420 00:20:46,410 --> 00:20:47,480 Okay. 421 00:20:47,480 --> 00:20:47,935 Gedoen het. 422 00:20:47,935 --> 00:20:49,300 SPREKER 13: [onhoorbaar] 423 00:20:49,300 --> 00:20:50,600 ALI: Ja, cool. 424 00:20:50,600 --> 00:20:53,720 Is jy seker te maak dat dit in kleinletters vorm? 425 00:20:53,720 --> 00:20:56,730 Okay, cool. 426 00:20:56,730 --> 00:20:59,882 Waar is die ander mense? 427 00:20:59,882 --> 00:21:06,140 Het hierdie wenk jou help om, soos vir die un-vas jouself? 428 00:21:06,140 --> 00:21:09,778 SPREKER 14: Nie regtig nie, maar net, want ek weet nie, ek is nie 429 00:21:09,778 --> 00:21:11,590 vertering dit nog nie. 430 00:21:11,590 --> 00:21:12,640 ALI: Okay, cool. 431 00:21:12,640 --> 00:21:13,431 Doen wat jy wil om te probeer - 432 00:21:13,431 --> 00:21:16,140 of wil jy om te gaan praat? 433 00:21:16,140 --> 00:21:18,590 >> ROB: Wat ek gaan sê, is - 434 00:21:18,590 --> 00:21:19,890 so die gebruik van hierdie. 435 00:21:19,890 --> 00:21:22,650 Verstaan ​​jy hoe ons watter posisie van die alfabet 436 00:21:22,650 --> 00:21:24,820 die brief is in? 437 00:21:24,820 --> 00:21:30,616 SPEAKER 14: Okay, so wanneer jy dinge in 'n enkele aanhaling, 438 00:21:30,616 --> 00:21:35,030 wat gee 'n nommer? 439 00:21:35,030 --> 00:21:37,100 ROB: Ja. 440 00:21:37,100 --> 00:21:40,840 Dit sal vertaal word na die ASCII waarde wat dit verteenwoordig. 441 00:21:40,840 --> 00:21:43,350 So doen wat jy wil om te gaan na ASCII tabel of wat dit ookal is? 442 00:21:46,456 --> 00:21:47,840 ALI: Slegs een van hierdie? 443 00:21:47,840 --> 00:21:49,970 ROB: Yep. 444 00:21:49,970 --> 00:21:55,270 So wanneer jy enige van hierdie simbole, ignoreer 'n groot deel van die - 445 00:21:55,270 --> 00:21:56,450 ALI: [onhoorbaar] 446 00:21:56,450 --> 00:21:57,620 ROB: Oh, met behulp van die muis. 447 00:21:57,620 --> 00:21:58,380 ALI: Ja. 448 00:21:58,380 --> 00:21:59,690 Dit was opwindend. 449 00:21:59,690 --> 00:22:04,050 ROB: So, ignoreer hierdie kinders aan die linkerkant, wat is spesiale simbole - 450 00:22:04,050 --> 00:22:08,520 as jy enige van hierdie simbole in aanhalingstekens, dan sal dit 451 00:22:08,520 --> 00:22:11,620 vertaal na hierdie waarde aan die linkerkant. 452 00:22:11,620 --> 00:22:13,660 ALI: Dit is die desimale getal vir dit. 453 00:22:13,660 --> 00:22:19,710 Dit is soos 'n wedstryde met 65, B 66, en jy sal sien dat hulle is almal in 454 00:22:19,710 --> 00:22:21,540 alfabetiese volgorde, wat 'n verskil maak. 455 00:22:21,540 --> 00:22:27,110 So, as Rob sê, voor, in die kode, het ons die berekening van die afstand vanaf 456 00:22:27,110 --> 00:22:29,610 die eerste brief, per se. 457 00:22:29,610 --> 00:22:32,820 En dit sal dieselfde wees, of dit is hoofletters of klein letters. 458 00:22:32,820 --> 00:22:38,390 ROB: So wanneer ons het D, 68 minus A, 65, ons kry 3. 459 00:22:38,390 --> 00:22:42,370 Omdat D is drie posisies in die alfabet. 460 00:22:42,370 --> 00:22:46,680 ALI: So hoe sou jy dit vertaal wat oor om uit te vind die klein d? 461 00:22:46,680 --> 00:22:47,240 ROB: Ja. 462 00:22:47,240 --> 00:22:52,230 So as ek het 3 Ek weet nou, ek wil drie letters te gaan in die - 463 00:22:52,230 --> 00:22:54,830 ons gebeur te gaan kleinletters nou nie, maar kom ons sê ek wil drie te gaan 464 00:22:54,830 --> 00:22:58,610 posisies in die kleinletter kant van dinge. 465 00:22:58,610 --> 00:23:01,400 So, hoe kan ek dit doen? 466 00:23:01,400 --> 00:23:04,240 Ek weet kleinletter a 97. 467 00:23:04,240 --> 00:23:07,535 So hoe kry ek drie posisies in die kleinletters? 468 00:23:10,461 --> 00:23:11,934 >> SPREKER 15: Ek het 'n vraag eintlik. 469 00:23:11,934 --> 00:23:12,425 ALI: Ja, gaan voort. 470 00:23:12,425 --> 00:23:14,880 SPREKER 15: Dus vir hierdie, dit maak nie regtig saak as ek weet hierdie posisie, 471 00:23:14,880 --> 00:23:16,360 hou nie, ek hoef nie hierdie tabel. 472 00:23:16,360 --> 00:23:16,840 ROB: Nee. 473 00:23:16,840 --> 00:23:19,380 Jy sal nooit nodig om enige van hierdie getalle te gebruik. 474 00:23:19,380 --> 00:23:23,670 En dit is 'n belangrike punt in jou programme wat jy nooit moet hard 475 00:23:23,670 --> 00:23:25,500 kodeer enige van hierdie konstantes. 476 00:23:25,500 --> 00:23:31,190 Gebruik 'A'. nooit gebruik 65 of 97. 477 00:23:31,190 --> 00:23:34,370 ALI: Dit is magic nommers genoem, en hulle is regtig verwarrend. 478 00:23:34,370 --> 00:23:37,080 Soos wanneer jy 'n kode is ontfouting, kan jy nie onthou wat 479 00:23:37,080 --> 00:23:38,020 jy gebruik dit vir. 480 00:23:38,020 --> 00:23:40,770 En vir ons die formaat van jou kode is, sal ons nie regtig weet wat 481 00:23:40,770 --> 00:23:41,750 jy gebruik dit vir. 482 00:23:41,750 --> 00:23:44,815 So dit is beter as jy eintlik die karakters gebruik so dit maak 483 00:23:44,815 --> 00:23:46,065 meer sin vir mense. 484 00:23:49,460 --> 00:23:51,160 Okay, enige ander vrae? 485 00:23:51,160 --> 00:23:52,975 Meer mense gedoen het, of - 486 00:23:56,243 --> 00:23:57,493 Ek dink ons ​​kan kyk. 487 00:23:59,870 --> 00:24:02,410 Dit is regtig creepy dat jy kan sien mense se kode. 488 00:24:02,410 --> 00:24:04,970 ROB: Ja. 489 00:24:04,970 --> 00:24:06,410 Ons het nie om dit hier te doen. 490 00:24:06,410 --> 00:24:08,380 Ons weet nie mense se name nie. 491 00:24:08,380 --> 00:24:10,940 ALI: O ja, en wat maak dit beter, so ons sal nog meer onbevooroordeelde 492 00:24:10,940 --> 00:24:14,820 in plaas van net lukraak pluk iemand. 493 00:24:14,820 --> 00:24:15,360 Moenie bekommerd wees nie. 494 00:24:15,360 --> 00:24:16,265 Ek sal dit nie doen nie. 495 00:24:16,265 --> 00:24:20,396 As jy 'n lukrake dinge oor - never mind. 496 00:24:20,396 --> 00:24:20,870 Okay. 497 00:24:20,870 --> 00:24:22,556 Hoe word mense doen? 498 00:24:22,556 --> 00:24:26,950 >> SPEAKER 17: En die negende reël moet 'n karakter uit te druk? 499 00:24:26,950 --> 00:24:27,430 ROB: Ja. 500 00:24:27,430 --> 00:24:27,910 ALI: Ja. 501 00:24:27,910 --> 00:24:30,770 So as jy gaan - 502 00:24:30,770 --> 00:24:32,200 ROB: O, jy kan dit nie doen nie. 503 00:24:32,200 --> 00:24:35,400 ALI: Jy sal sien dat dit die hash simbool gedruk. 504 00:24:35,400 --> 00:24:37,180 SPREKER 17: O, okay. 505 00:24:37,180 --> 00:24:41,290 ROB: Ek dink nog 'n manier waarop jy na dinge kan kyk is ons druk 2 506 00:24:41,290 --> 00:24:42,540 karakters. 507 00:24:44,500 --> 00:24:47,740 Eerste een wat ons druk is die letter A. 508 00:24:47,740 --> 00:24:51,610 Die volgende een wat ons druk is net 65. 509 00:24:51,610 --> 00:24:54,450 Dit sal waarskynlik op my skreeu vir hierdie. 510 00:24:54,450 --> 00:25:00,060 So as ons net hierdie hardloop, sal jy sien dat dit 'n twee keer druk. 511 00:25:00,060 --> 00:25:02,070 Want ons is dit dieselfde ding vra. 512 00:25:02,070 --> 00:25:07,840 Ons vra dit die letter A. te druk en dan is ons vra om dit te druk 513 00:25:07,840 --> 00:25:13,820 nommer 65 geïnterpreteer as 'n karakter, wat is dieselfde ding. 514 00:25:13,820 --> 00:25:15,100 ALI: Het jy iets om te sê? 515 00:25:15,100 --> 00:25:18,150 O, just kidding, jammer. 516 00:25:18,150 --> 00:25:20,640 Alle reg, hoe is mense - 517 00:25:20,640 --> 00:25:22,280 ROB: Ons kan nie net loop deur dit. 518 00:25:22,280 --> 00:25:25,250 >> ALI: Okay, so hoe begin jy? 519 00:25:25,250 --> 00:25:26,500 Iemand? 520 00:25:28,030 --> 00:25:34,486 As 'n wenk, ons het iets van die mense te kry, van die typers. 521 00:25:34,486 --> 00:25:36,850 SPREKER 18: [onhoorbaar] 522 00:25:36,850 --> 00:25:38,290 ALI: O ja, 'n vinnige, volmaak. 523 00:25:38,290 --> 00:25:40,660 So ons sal tik - 524 00:25:40,660 --> 00:25:41,670 Watter tipe doen ons? 525 00:25:41,670 --> 00:25:43,660 Iemand? 526 00:25:43,660 --> 00:25:46,480 Of moet ek tik dit net? 527 00:25:46,480 --> 00:25:47,530 Is ons werklik tik die - 528 00:25:47,530 --> 00:25:48,430 ROB: Seker nie. 529 00:25:48,430 --> 00:25:50,990 ALI: So sal ons tik 'n printf dit te vinnig, sodat ons kan wees 530 00:25:50,990 --> 00:25:54,810 hou nie, gee my 'n karakter. 531 00:25:54,810 --> 00:25:55,710 Goed, en dan wat? 532 00:25:55,710 --> 00:25:56,664 Hoekom is dit om dit te doen? 533 00:25:56,664 --> 00:25:57,620 ROB: Ek weet nie. 534 00:25:57,620 --> 00:26:00,070 ALI: Goed. 535 00:26:00,070 --> 00:26:03,680 So nou, vertel ons hulle om ons 'n karakter te gee. 536 00:26:03,680 --> 00:26:07,064 Maar dan hoe jy eintlik nie die karakter? 537 00:26:07,064 --> 00:26:10,060 SPREKER 19: Gebruik 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 Okay, so wat is die verskil tussen 'n tou en 'n char? 541 00:26:17,038 --> 00:26:20,020 SPREKER 19: Strings is 'n reeks, soos 'n verskeidenheid van karakters. 542 00:26:20,020 --> 00:26:21,910 >> ALI: Cool, ja. 543 00:26:21,910 --> 00:26:25,550 So in hierdie probleem, ons moet net een karakter op 'n tyd om te oorweeg, so 544 00:26:25,550 --> 00:26:28,400 ons net gaan om getChar te doen vir daardie geval. 545 00:26:28,400 --> 00:26:32,400 ROB: Ons kan 'n funksie implementeer as ons wou dit het 'n hele string 546 00:26:32,400 --> 00:26:35,750 en hy het oor die tou en alle klein letters verander na hoofletters en alle 547 00:26:35,750 --> 00:26:37,380 hoofletter onderkas. 548 00:26:37,380 --> 00:26:39,170 Maar hier, ons is net vra dat jy vir 'n karakter. 549 00:26:39,170 --> 00:26:42,800 ALI: So nou het ons die karakter hier, maar dan het ons nodig het om dit te red. 550 00:26:42,800 --> 00:26:45,070 So dan sal ons voeg char c - wat? 551 00:26:45,070 --> 00:26:46,070 SPREKER 20: Definieer die veranderlike. 552 00:26:46,070 --> 00:26:48,100 ALI: Ja, presies. 553 00:26:48,100 --> 00:26:49,585 So ons het ons karakter. 554 00:26:49,585 --> 00:26:51,766 ROB: Ek dink jy kan wees - 555 00:26:51,766 --> 00:26:55,630 jy slegs drie ruimtes in, wat is die rede waarom dit skree op jou. 556 00:26:55,630 --> 00:27:01,300 >> ALI: Okay, koel, nou dat ons stel het tabbing, wat gebeur volgende? 557 00:27:01,300 --> 00:27:02,550 Wat is die volgende stap? 558 00:27:05,590 --> 00:27:08,870 ROB: Wat ons program moet doen, is verander 'n klein letter aan 'n 559 00:27:08,870 --> 00:27:10,130 hoofletter. 560 00:27:10,130 --> 00:27:15,478 Wat as ek toevallig die hash simbool in te voer? 561 00:27:15,478 --> 00:27:16,314 Is dat - 562 00:27:16,314 --> 00:27:16,732 ALI: Dit is 'n goeie simbool. 563 00:27:16,732 --> 00:27:18,270 Ons gebruik dit baie. 564 00:27:18,270 --> 00:27:21,937 ROB: Is dit 'n geldige ding wat ek kan skakel na 'n hoofletter vorm? 565 00:27:21,937 --> 00:27:23,070 SPREKER 21: No. 566 00:27:23,070 --> 00:27:24,070 ALI: No 567 00:27:24,070 --> 00:27:24,900 Ons moet kyk. 568 00:27:24,900 --> 00:27:34,950 Sodat ons kan 'n IF-stelling kontrole as die c is groter as 569 00:27:34,950 --> 00:27:37,410 of gelyk aan die kleinletter "A" - 570 00:27:37,410 --> 00:27:45,490 so as ons kyk na die grafiek, sal jy sien dat dit hier te wees tussen 571 00:27:45,490 --> 00:27:47,670 by 97, en die kleinletter a. 572 00:27:47,670 --> 00:27:52,110 En dit kan enige van hierdie, en in inkremente al die pad af. 573 00:27:52,110 --> 00:27:55,200 En dan is daar z 122. 574 00:27:55,200 --> 00:27:58,215 En dit het tussen hierdie twee waardes om te val. 575 00:27:58,215 --> 00:27:59,700 Maak dit sin? 576 00:27:59,700 --> 00:28:04,130 ROB: So as c is nie tussen 97 en 122 - 577 00:28:04,130 --> 00:28:09,960 of jy moet nooit nodig het om die getalle te gebruik - as c is nie tussen 'a' en 578 00:28:09,960 --> 00:28:15,110 "Z," dan is dit was nie 'n geldige karakter vir ons na 'n hoofletter. 579 00:28:15,110 --> 00:28:18,590 ALI: So in kodevorm is, sê ons dat indien c groter as of gelyk aan enkele 580 00:28:18,590 --> 00:28:19,640 geval kleinletters - 581 00:28:19,640 --> 00:28:21,270 wow, hoe het jy dit sê? 582 00:28:21,270 --> 00:28:26,900 Okay, is groter as of gelyk aan met klein letters 'a', en dit moet bo 583 00:28:26,900 --> 00:28:32,250 die kleinletters "z". So moet dit minder as of gelyk 'z' na onderkas. 584 00:28:32,250 --> 00:28:35,300 Ons maak seker dat dit is tussen die twee. 585 00:28:35,300 --> 00:28:38,540 Dan kan ons voortgaan met ons gelukkige kode. 586 00:28:41,992 --> 00:28:43,360 Wat? 587 00:28:43,360 --> 00:28:46,860 ROB: So ek het gedink ons ​​sou net bly vra, as ons gebeur nie 'n 588 00:28:46,860 --> 00:28:48,250 kleinletter. 589 00:28:48,250 --> 00:28:51,130 ALI: O, ek was nie bewus van daardie. 590 00:28:51,130 --> 00:28:52,820 Jammer. 591 00:28:52,820 --> 00:28:58,100 >> Okay, so as ons gaan om dit te doen as Rob sê, en maak seker dat - 592 00:28:58,100 --> 00:29:02,068 ons vra hulle kan hou, dan wat moet ons doen? 593 00:29:02,068 --> 00:29:02,994 SPREKER 22: [onhoorbaar] 594 00:29:02,994 --> 00:29:03,530 ROB: Ja. 595 00:29:03,530 --> 00:29:05,630 Ons moet gebruik maak van 'n soort van die lus. 596 00:29:05,630 --> 00:29:12,900 Omdat die gebruiker kan 'iets ongeldig 'n ongekende hoeveelheid kere. 597 00:29:12,900 --> 00:29:14,990 Sodat jy kan gebruik om 'n while lus. 598 00:29:14,990 --> 00:29:18,870 Die doel van 'n do-while lus - 599 00:29:18,870 --> 00:29:21,340 letterlik, die enigste keer in jou hele lewe wat jy ooit sal gebruik nie, doen- 600 00:29:21,340 --> 00:29:24,780 terwyl lusse is wanneer jy vra vir die toevoer van die gebruiker. 601 00:29:24,780 --> 00:29:28,260 So is die feit wat ons vra vir die toevoer van die gebruiker hier is 'n wenk dat ons moet 602 00:29:28,260 --> 00:29:29,660 gebruik 'n do-while lus. 603 00:29:29,660 --> 00:29:30,780 En hoekom is dit? 604 00:29:30,780 --> 00:29:34,270 Omdat do-while lus altyd ten minste een keer gebeur. 605 00:29:34,270 --> 00:29:40,260 So wanneer jy vra vir die toevoer van die gebruiker, jy wil dit ten minste een keer gebeur. 606 00:29:40,260 --> 00:29:42,750 En dan as dinge suksesvol was, kan jy hou gaan. 607 00:29:42,750 --> 00:29:45,130 Indien nie, gaan terug en vra weer. 608 00:29:45,130 --> 00:29:48,950 >> ALI: So met ander woorde, ons 'n artikel te doen. 609 00:29:48,950 --> 00:29:51,130 En so het dit vertel om iets te doen. 610 00:29:51,130 --> 00:29:53,890 So printf - 611 00:29:53,890 --> 00:29:57,490 druk die verklaring, die vinnige, en ook die karakter te kry, of poog om 612 00:29:57,490 --> 00:29:58,780 kry 'n karakter. 613 00:29:58,780 --> 00:30:03,410 En dan het ons om te kyk of dit eintlik het dit korrek. 614 00:30:03,410 --> 00:30:07,730 So dan het ons die voorwaardes byvoeg, dan sê ons, terwyl, en dan het ons die 615 00:30:07,730 --> 00:30:08,980 voorwaardelike verklaring. 616 00:30:11,600 --> 00:30:14,730 ROB: Maar nou is ons omgekeer om die trein van denke. 617 00:30:14,730 --> 00:30:18,940 Nou het ons oorspronklik het gesê as c is in hierdie reeks, is dit geldig is. 618 00:30:18,940 --> 00:30:23,340 Nou wil ons dit om te keer en sê as c is nie in hierdie reeks, dan het ons 619 00:30:23,340 --> 00:30:25,020 moet dinge terug om weer te doen. 620 00:30:25,020 --> 00:30:25,900 ALI: "O, ja. 621 00:30:25,900 --> 00:30:31,720 ROB: Dus, terwyl dit is nie waar nie, ons wil om terug te gaan en 622 00:30:31,720 --> 00:30:34,470 vra vir 'n ander karakter. 623 00:30:34,470 --> 00:30:36,880 Nie almal sien dat? 624 00:30:36,880 --> 00:30:38,830 Vrae oor hierdie? 625 00:30:38,830 --> 00:30:39,400 Okay. 626 00:30:39,400 --> 00:30:43,480 >> So nou het ons 'n geldige karakter wat ons kan n hoofletter. 627 00:30:43,480 --> 00:30:47,150 ALI: So dan wat die volgende stap vir uppercasing dit? 628 00:30:49,994 --> 00:30:51,890 SPEAKER 23: Voeg 32. 629 00:30:51,890 --> 00:30:52,600 ALI: Jy voeg - 630 00:30:52,600 --> 00:30:54,150 jammer, wat? 631 00:30:54,150 --> 00:30:56,580 SPREKER 23: Kan jy nie net voeg 32? 632 00:30:56,580 --> 00:31:02,360 ROB: So ja, nie in terme van die magic nommers. 633 00:31:02,360 --> 00:31:04,610 Jy moet slegs gebruik word om enkel-quote stuff. 634 00:31:04,610 --> 00:31:06,450 SPEAKER 23: Okay, goed 635 00:31:06,450 --> 00:31:07,250 Rob: Maar kan jy 32 - 636 00:31:07,250 --> 00:31:11,870 ALI: Hoe het jy die getal 32, dink ek, is wat ons sê. 637 00:31:11,870 --> 00:31:18,060 SPREKER 23: [onhoorbaar] 638 00:31:18,060 --> 00:31:22,158 ROB: So ons kan kom met die nommer 32 saam - 639 00:31:22,158 --> 00:31:24,468 SPREKER 23: [onhoorbaar]? 640 00:31:24,468 --> 00:31:24,930 ROB: Ja. 641 00:31:24,930 --> 00:31:28,540 Maar as ons gaan om dit te doen in die twee stappe wat ons gedoen het voor met 642 00:31:28,540 --> 00:31:29,950 die posisie stuff. 643 00:31:29,950 --> 00:31:36,910 So het die posisie in die alfabet wat c gebeur om te wees is c minus kleinletters 644 00:31:36,910 --> 00:31:42,360 'A'. So as ons in 'n kleinletter 'd', posisie gaan wees 3. 645 00:31:42,360 --> 00:31:46,490 En nou is ons wil dinge te neem na die hoofletters verskeidenheid van dinge. 646 00:31:46,490 --> 00:31:55,376 So nou is ons nuwe c gaan die hoofstad "A" plus posisie wees. 647 00:31:55,376 --> 00:32:00,090 Mense so sien hoe dit bring ons - 648 00:32:00,090 --> 00:32:04,140 ons beweeg van die kleinletter reeks, die presiese diepte ons was in daardie 649 00:32:04,140 --> 00:32:07,650 reeks, en om af te gaan in die hoofletters reeks, en gaan so ver 650 00:32:07,650 --> 00:32:10,610 weer in dit, wat gaan aan die dieselfde karakter te wees, maar nou 651 00:32:10,610 --> 00:32:12,550 uppercased. 652 00:32:12,550 --> 00:32:16,490 ALI: En vir die mense wat deur hoe verward was hy net gesê 32, 653 00:32:16,490 --> 00:32:20,390 basies combineerde hy beide van hierdie in 'n verklaring. 654 00:32:20,390 --> 00:32:24,550 So 'n gelykwaardige manier van skryf om te sê jy kan net soort van 655 00:32:24,550 --> 00:32:28,190 plaasvervanger posisie, die c minus 'n, "en sit dit hier. 656 00:32:28,190 --> 00:32:31,330 So wat hy gedoen het, het ek moenie - 657 00:32:31,330 --> 00:32:44,510 char newc = hoofletters "A" plus c minus onderkas 'a'. En as gevolg van algebra, 658 00:32:44,510 --> 00:32:47,090 jy kan beweeg hulle rond. 659 00:32:47,090 --> 00:32:52,960 Jy kan ook sê dat jy dit kan rondbeweeg so char newc = hoofletters "A" 660 00:32:52,960 --> 00:32:55,620 minus onderkas 'n "plus c. 661 00:32:55,620 --> 00:32:58,650 En dit, sal jy sien as ons gaan terug na die kaart. 662 00:33:01,160 --> 00:33:06,300 Ons het 'n hoofletter A is 65 en onderkas a 97. 663 00:33:06,300 --> 00:33:09,800 So 65 - 97 -32. 664 00:33:09,800 --> 00:33:10,020 >> Hi. 665 00:33:10,020 --> 00:33:10,930 Neem 'n sitplek. 666 00:33:10,930 --> 00:33:12,180 Oh. 667 00:33:16,240 --> 00:33:17,980 Jy kan hier sit. 668 00:33:17,980 --> 00:33:20,805 Cool, okay, awesome. 669 00:33:20,805 --> 00:33:22,390 Welkom artikel. 670 00:33:22,390 --> 00:33:25,110 Jy sal sien dat die verskil is 32. 671 00:33:25,110 --> 00:33:28,150 So dit is waar hy dat die getal het. 672 00:33:28,150 --> 00:33:32,140 Maar dit is nie, soos Rob sê, die beste manier om dit te doen, want dit het die vreemde 673 00:33:32,140 --> 00:33:35,260 magic number verwarring. 674 00:33:35,260 --> 00:33:38,710 ROB: Jy moet gebruik kapitaal 'n minus onderkas 'n. 675 00:33:38,710 --> 00:33:43,045 Jy moet nie net reguit 32. 676 00:33:43,045 --> 00:33:45,020 SPREKER 24: Waarom is dit nou weer? 677 00:33:45,020 --> 00:33:49,860 Hoekom moet jy nie gebruik 32? 678 00:33:49,860 --> 00:33:55,630 ALI: As ons dit gedoen het, sou dit char newc = -32 + c. 679 00:33:55,630 --> 00:34:00,030 En as jy sien nie enige van die res van dit, as dit al is weg, en jy 680 00:34:00,030 --> 00:34:04,720 sien net hierdie enkele lyn, hoe weet jy wat die negatiewe 32 is? 681 00:34:04,720 --> 00:34:07,000 Dis net uit plek. 682 00:34:07,000 --> 00:34:10,360 ROB: So jou program sou heeltemal fyn werk. 683 00:34:10,360 --> 00:34:12,960 Dit is net 'n styl ding. 684 00:34:12,960 --> 00:34:17,760 Iemand gaan in en om jou kode te lees, hulle is soos wat beteken 32 beteken? 685 00:34:17,760 --> 00:34:18,889 Miskien het hulle moenie - 686 00:34:18,889 --> 00:34:22,090 Ek sou dit waarskynlik nie dadelik besef dat 32 gebeur om te wees 687 00:34:22,090 --> 00:34:25,100 verskil tussen 'n kleinletter en 'n hoofletter, hoewel 688 00:34:25,100 --> 00:34:26,510 ons gaan daardie feit te gebruik in die volgende probleem. 689 00:34:30,210 --> 00:34:31,610 32 - 690 00:34:31,610 --> 00:34:38,579 jy kan 'n kommentaar te verlaat bo dit sê 32 is die verskil tussen 691 00:34:38,579 --> 00:34:45,290 'A' en 'n '. Maar op daardie punt, waarom nie net 'A' en 'n ', en jy gebruik 692 00:34:45,290 --> 00:34:47,469 hoef nie die kommentaar. 693 00:34:47,469 --> 00:34:52,739 >> ALI: Dit is net die maniere bogenoemde is dit is 'n baie skoner, styl-wyse. 694 00:34:52,739 --> 00:34:54,590 En so, omdat jy net begin programmering - 695 00:34:54,590 --> 00:34:57,775 of ek dink nie, want jy is hacker edi - never mind. 696 00:34:57,775 --> 00:34:59,420 Dit is net 'n goeie manier om te hê - 697 00:34:59,420 --> 00:35:01,230 dit is beter om beter styl te hê. 698 00:35:01,230 --> 00:35:02,850 Dit is makliker om vir ander mense te lees. 699 00:35:02,850 --> 00:35:06,560 ROB: Jy moet nooit die ASCII-tabel nodig om te onthou, ooit. 700 00:35:06,560 --> 00:35:09,505 Jy moet net in staat wees om die enkele aanhaling karakters te gebruik. 701 00:35:12,390 --> 00:35:12,730 Vrae? 702 00:35:12,730 --> 00:35:13,980 ALI: Almal goeie? 703 00:35:16,020 --> 00:35:16,430 ROB: Goed. 704 00:35:16,430 --> 00:35:23,320 Sodat die volgende probleem is aansienlik. 705 00:35:23,320 --> 00:35:24,660 So die volgende probleem vra ons - 706 00:35:27,880 --> 00:35:31,570 ALI: Die volgende probleem vir ons vra om dieselfde ding te doen nie, maar om te gebruik 707 00:35:31,570 --> 00:35:32,640 bis-operateurs. 708 00:35:32,640 --> 00:35:35,170 ROB: En natuurlik, ons het nie gesien bis-operateurs nie. 709 00:35:35,170 --> 00:35:38,874 So sal ons nou bespreek hulle. 710 00:35:38,874 --> 00:35:39,540 ALI: Wees opgewonde. 711 00:35:39,540 --> 00:35:41,490 Hulle is super fun. 712 00:35:41,490 --> 00:35:47,927 >> ROB: So het die gereelde operateurs, soos x plus y, minus, maal, verdeel. 713 00:35:47,927 --> 00:35:50,850 ALI: Tik dit in hierdie vinnige. 714 00:35:50,850 --> 00:35:55,420 Rob: Daar is ook%, as jy dit nie gesien het, wat jy kan gebruik deur die 715 00:35:55,420 --> 00:35:57,130 persent simbool. 716 00:35:57,130 --> 00:35:59,090 Maar ons sal nie gebruik vir hierdie probleem. 717 00:35:59,090 --> 00:36:01,400 Ons wil bis-operatore te gebruik. 718 00:36:01,400 --> 00:36:06,250 Nou onthou, ons het dit in lesing een. 719 00:36:06,250 --> 00:36:10,760 Ek is nie seker as ons binêre as dit nie bespreek het. 720 00:36:10,760 --> 00:36:13,710 Maar onthou dat elke enkele getal word verteenwoordig - 721 00:36:13,710 --> 00:36:14,540 wel, alles - 722 00:36:14,540 --> 00:36:17,860 is verteenwoordig in 1'e en 0'e in binêre. 723 00:36:17,860 --> 00:36:27,320 So dit beteken dat as ek sê die getal 8, Ek weet toevallig dat dit is 724 00:36:27,320 --> 00:36:30,240 soos, 1000. 725 00:36:30,240 --> 00:36:35,530 Wat bis-operateurs laat ons doen is om te werk op hierdie stukkies - 726 00:36:35,530 --> 00:36:37,000 is direk op hierdie stukkies. 727 00:36:40,160 --> 00:36:42,490 Nou is ek nie meer doen in terme van agt. 728 00:36:42,490 --> 00:36:45,930 Ek doen in terme van 1000, en ek wil dinge om te doen met dié 729 00:36:45,930 --> 00:36:47,670 individuele stukkies. 730 00:36:47,670 --> 00:36:52,520 So Ali het geskryf die bis-operateurs, maar that's - 731 00:36:55,060 --> 00:36:58,020 Die getal 8 sal ons gebruik as een van ons 'n voorbeeld. 732 00:36:58,020 --> 00:37:02,980 En die binêre voorstelling is 1000. 733 00:37:02,980 --> 00:37:06,520 Ons sal 'n ander nommer, 5 - 734 00:37:06,520 --> 00:37:12,070 eintlik laat gebruik 9 en 5. 735 00:37:12,070 --> 00:37:15,778 En die 5 se binêre voorstelling is 00 - 736 00:37:15,778 --> 00:37:18,380 0101. 737 00:37:18,380 --> 00:37:19,480 ALI: Is almal goed op? 738 00:37:19,480 --> 00:37:21,040 Die binêre dinge? 739 00:37:21,040 --> 00:37:23,740 Dit was van die eerste lesing? 740 00:37:23,740 --> 00:37:29,070 >> ROB: So selfs al is jy nie heeltemal op die top van hoe dinge om te skakel na 741 00:37:29,070 --> 00:37:31,700 binêre, dit is nie heeltemal belangrik is vir hierdie probleem. 742 00:37:31,700 --> 00:37:36,560 Ons sal gebruik word, maar jy sal baie meer kanse om uit te vind hoe om 743 00:37:36,560 --> 00:37:39,250 draai vinnig dinge in binêre. 744 00:37:39,250 --> 00:37:43,820 So met behulp van 9 en 5, nou het ons ons bis-operateurs. 745 00:37:43,820 --> 00:37:48,620 O ja, en ook, 9 en 5, as dit 'n heelgetal is, dan is dit regtig is 32 stukkies, 746 00:37:48,620 --> 00:37:53,150 wat beteken dat ons soos 0, 0, 0, 0 'n baie keer, dan 747 00:37:53,150 --> 00:37:55,330 101 op die bitter einde. 748 00:37:55,330 --> 00:37:58,530 Dit is net omdat, maak nie saak wat jy doen, in heelgetalle, 32 stukkies. 749 00:37:58,530 --> 00:38:01,570 Net omdat ons moet net vier stukkies 9 te stel beteken nie dat ons nie ' 750 00:38:01,570 --> 00:38:05,500 gebruik die ander 27 bisse vir net 0e. 751 00:38:05,500 --> 00:38:10,110 ALI: Net om te verduidelik, een van hierdie getalle wat is 'n 0 of 'n 1 is 'n bietjie. 752 00:38:10,110 --> 00:38:11,830 Hierdie een is 4 stukkies. 753 00:38:11,830 --> 00:38:14,320 Soos so Rob gesê dat die masjien stoor dit in 32. 754 00:38:14,320 --> 00:38:19,430 Sodat hulle wil hê dat 32 van óf 'n 0 of 'n 1. 755 00:38:19,430 --> 00:38:22,190 Koel? 756 00:38:22,190 --> 00:38:23,610 ROB: Die bis-operateurs. 757 00:38:23,610 --> 00:38:27,310 Die eerste een wat ons sal hanteer, laat ons dit doen. 758 00:38:27,310 --> 00:38:31,260 So as ons dit doen 9 & 5. 759 00:38:31,260 --> 00:38:38,310 So what & doen, bietjie vir bietjie, dit vergelyk die stukkies van die twee getalle 760 00:38:38,310 --> 00:38:44,860 en indien beide van die getalle 1, dan is dit sal terugkeer 'n 1. 761 00:38:44,860 --> 00:38:50,870 As 'n mens is 'n 0 en die ander is 'n 1, of albei is 0e, dan is dit terug 'n 0. 762 00:38:50,870 --> 00:38:53,060 Sodat jy kan dink dit as jou logiese ands. 763 00:38:53,060 --> 00:38:59,270 Soos jy nodig het waar en ware ware om terug te keer, maar ware en valse vals is. 764 00:38:59,270 --> 00:39:02,390 So dit is die dieselfde ding, maar nou het ons te doen het met dit met net stukkies. 765 00:39:02,390 --> 00:39:04,910 >> ALI: So as jy kyk na hierdie, jy het 1 - 766 00:39:04,910 --> 00:39:08,490 jy sal hulle lyn, so sal dit wees 1 en 0. 767 00:39:08,490 --> 00:39:11,036 Het julle ouens dink wat sou wees - wat sal dit evalueer aan? 768 00:39:11,036 --> 00:39:11,770 SPREKER 25: 1. 769 00:39:11,770 --> 00:39:12,270 ALI: Cool. 770 00:39:12,270 --> 00:39:16,850 Of nie. 771 00:39:16,850 --> 00:39:18,830 Jammer. 772 00:39:18,830 --> 00:39:21,290 Dus beteken wat sin maak? 773 00:39:21,290 --> 00:39:23,200 So, wat is die gesamentlike antwoord weer? 774 00:39:23,200 --> 00:39:24,750 Jammer. 775 00:39:24,750 --> 00:39:27,530 So indien ons het 1 en 0, dan is wat kry jy? 776 00:39:27,530 --> 00:39:30,260 ROB: So jy dink van hoe jy dit sê en hardop. 777 00:39:30,260 --> 00:39:37,550 As jy het twee stukkies, X en Y, wat jy nodig het x en y 1 ten einde dit 778 00:39:37,550 --> 00:39:40,770 te evalueer na waar - of, ten einde dit te evalueer 1. 779 00:39:40,770 --> 00:39:45,650 As x of y is 0, dan is dit evalueer vals of 0. 780 00:39:45,650 --> 00:39:49,165 LUCAS: Dit is goed om ook te onthou dat 1 is waar en 0 is vals. 781 00:39:49,165 --> 00:39:51,684 So as jy 'true & vals, is dit vals. 782 00:39:51,684 --> 00:39:53,570 Maar dan, true & ware, ware. 783 00:39:53,570 --> 00:39:55,040 Vals en onwaar is, vals is. 784 00:39:55,040 --> 00:39:57,650 ALI: Ons het true & vals. 785 00:39:57,650 --> 00:39:58,530 So 1 en 0. 786 00:39:58,530 --> 00:40:00,380 So dan weer, jammer, een keer? 787 00:40:00,380 --> 00:40:02,210 SPREKER 25: Dit sal wees 0. 788 00:40:02,210 --> 00:40:03,560 Ja, cool. 789 00:40:03,560 --> 00:40:05,400 En dan het ons 0 & 1 - 790 00:40:05,400 --> 00:40:06,260 SPREKER 25: [onhoorbaar] 791 00:40:06,260 --> 00:40:06,680 ALI: Ja. 792 00:40:06,680 --> 00:40:09,790 Sodat jy kan altyd ruil hulle in - 793 00:40:09,790 --> 00:40:12,150 Dan as jy het 0 en 0? 794 00:40:12,150 --> 00:40:12,618 SPREKER 4: 1? 795 00:40:12,618 --> 00:40:14,490 0? 796 00:40:14,490 --> 00:40:16,230 ROB: So dit is 0. 797 00:40:16,230 --> 00:40:18,870 Dit is nie dat beide getalle dieselfde te wees. 798 00:40:18,870 --> 00:40:22,030 Dit is dat beide getalle nodig het om te wees 1. 799 00:40:22,030 --> 00:40:26,150 ALI: So het albei om waar te wees vir dit om waar te wees. 800 00:40:26,150 --> 00:40:26,950 So dit is 0. 801 00:40:26,950 --> 00:40:30,540 En dan moet jy 1% 1, wat is? 802 00:40:30,540 --> 00:40:32,640 ROB: Dit is redelik goed getalle. 803 00:40:32,640 --> 00:40:34,362 Hulle het alle moontlike - 804 00:40:34,362 --> 00:40:36,210 ALI: Goeie werk, wow. 805 00:40:36,210 --> 00:40:37,080 Okay, cool. 806 00:40:37,080 --> 00:40:39,220 So beteken dit sin maak vir almal? 807 00:40:39,220 --> 00:40:41,770 >> ROB: So nou sal ons doen |. 808 00:40:41,770 --> 00:40:51,650 En dit gaan baie soortgelyk te wees, maar nou in plaas van x en y hoef te 809 00:40:51,650 --> 00:40:54,880 1 ten einde dit te evalueer aan die een, nou is dit is net x of 810 00:40:54,880 --> 00:40:56,360 y moet wees 1. 811 00:40:56,360 --> 00:40:59,580 ALI: So 1 | 0 evalueer - 812 00:40:59,580 --> 00:41:00,270 KLAS: 1. 813 00:41:00,270 --> 00:41:01,690 ALI: Cool. 814 00:41:01,690 --> 00:41:03,710 0 | 1 evalueer - 815 00:41:03,710 --> 00:41:04,420 KLAS: 1. 816 00:41:04,420 --> 00:41:06,726 ALI: Cool, en dan 0 | 0 - 817 00:41:06,726 --> 00:41:07,600 KLAS: 0. 818 00:41:07,600 --> 00:41:09,320 ALI: Ja, en dan 1 | 1 - 819 00:41:09,320 --> 00:41:10,180 KLAS: 1. 820 00:41:10,180 --> 00:41:12,090 ALI: Cool. 821 00:41:12,090 --> 00:41:14,060 So dit is soos twee bis-operateurs. 822 00:41:14,060 --> 00:41:15,430 Awesome. 823 00:41:15,430 --> 00:41:16,440 ROB: So nou sal ons doen ^. 824 00:41:16,440 --> 00:41:18,470 ALI: moet ons doen almal van hulle? 825 00:41:18,470 --> 00:41:20,620 ROB: Ja, want ek dink ons ​​gaan om dit te gebruik - 826 00:41:20,620 --> 00:41:22,340 met behulp van hulle almal. 827 00:41:22,340 --> 00:41:23,150 ALI: Goed. 828 00:41:23,150 --> 00:41:23,570 So - 829 00:41:23,570 --> 00:41:25,540 ROB: Ek dink dat ons nie hoef te. 830 00:41:25,540 --> 00:41:31,830 ALI: So ^ werke in wat jy het presies een ware en 'n valse. 831 00:41:31,830 --> 00:41:34,330 ^ Beteken eksklusiewe OF. 832 00:41:34,330 --> 00:41:36,650 Dus is dit nou nie - 833 00:41:36,650 --> 00:41:41,220 indien x en y is albei 1, is dit nou vals. 834 00:41:41,220 --> 00:41:46,920 Dit is die verskil tussen ^ en |, is dat of jy kan hê, as x 835 00:41:46,920 --> 00:41:49,440 ware of y waar is, dan het ons dit goed. 836 00:41:49,440 --> 00:41:55,176 Nee, ^ sê as x is waar, y moet vals wees, of anders is dit nie waar nie. 837 00:41:55,176 --> 00:41:56,814 Het jy 'n vraag? 838 00:41:56,814 --> 00:42:00,526 >> SPREKER 26: [onhoorbaar] 839 00:42:00,526 --> 00:42:00,990 ALI: Ja. 840 00:42:00,990 --> 00:42:01,830 Dit is soort van 'n soortgelyke. 841 00:42:01,830 --> 00:42:07,320 ROB: Ja, so wanneer jy aan dat die lae-vlak hardeware stuff, dit is 842 00:42:07,320 --> 00:42:10,870 die aard van die bedrywighede wat jy te doen het met. 843 00:42:10,870 --> 00:42:13,200 By die hardeware vlak, sal jy slegs handel met stukkies. 844 00:42:13,200 --> 00:42:14,950 Jy gaan nie met getalle. 845 00:42:18,030 --> 00:42:23,502 ALI: Okay, vir ^, of as jy 1 ^ 0, moet dit wat evalueer? 846 00:42:23,502 --> 00:42:24,840 KLAS: 1. 847 00:42:24,840 --> 00:42:25,480 ALI: Cool. 848 00:42:25,480 --> 00:42:26,010 As jy ' 849 00:42:26,010 --> 00:42:28,370 0 ^ 1? KLAS: 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 En dan 1 ^ 1? 854 00:42:33,460 --> 00:42:35,050 KLAS: 0. 855 00:42:35,050 --> 00:42:37,710 ALI: Cool, awesome. 856 00:42:37,710 --> 00:42:38,620 Die volgende een - 857 00:42:38,620 --> 00:42:40,520 ROB: Ek dink dit is al wat ons het om te hanteer. 858 00:42:40,520 --> 00:42:41,490 Ons sal net doen hierdie. 859 00:42:41,490 --> 00:42:43,242 Ali: Die enigste tyd wat ons sal moet doen - 860 00:42:43,242 --> 00:42:44,912 ROB: O, dit sal vir die laaste probleem. 861 00:42:44,912 --> 00:42:47,070 SPREKER 27: Wag, weer? 862 00:42:47,070 --> 00:42:47,940 ALI: Jammer, wat was jou vraag? 863 00:42:47,940 --> 00:42:49,564 >> SPEAKER 27: Kan jy verduidelik dat weer? 864 00:42:49,564 --> 00:42:50,100 Die ^? 865 00:42:50,100 --> 00:42:51,490 SPREKER 27: uitsluitlike - ja. 866 00:42:51,490 --> 00:42:55,800 ALI: So, wat die eksklusiewe OF beteken dat daar om eksklusief te wees 867 00:42:55,800 --> 00:43:02,970 een ware en 'n valse, so een 1 en een 0, teenoor OF, kan jy - 868 00:43:02,970 --> 00:43:06,170 een van hulle het om waar te wees, of albei van hulle waar kan wees nie, want dit 869 00:43:06,170 --> 00:43:07,130 te evalueer waar. 870 00:43:07,130 --> 00:43:10,030 SPREKER 27: So 0 en 0 sou vals wees. 871 00:43:10,030 --> 00:43:10,450 ALI: Ja. 872 00:43:10,450 --> 00:43:11,780 Maar as jy 1 | 873 00:43:11,780 --> 00:43:14,290 1, sou dit evalueer aan ware. 874 00:43:14,290 --> 00:43:18,210 Maar as jy 1 ^ 1, soos ons gedoen het, wat evalueer na vals. 875 00:43:18,210 --> 00:43:21,220 Want dit is nie uitsluitlik een is waar. 876 00:43:21,220 --> 00:43:26,930 ROB: En hierdie mag of mag nie nuttig wees, maar kennis dat die ^ 877 00:43:26,930 --> 00:43:28,890 gelyk is aan net om die | 878 00:43:28,890 --> 00:43:30,290 minus die. 879 00:43:30,290 --> 00:43:32,250 En jy kan eintlik dink dit op hierdie manier. 880 00:43:32,250 --> 00:43:37,290 ^ Is net ORing alles saam, maar die uitneem van enige van die stukkies waar 881 00:43:37,290 --> 00:43:38,610 beide was waar. 882 00:43:38,610 --> 00:43:41,620 So & retouren alles waar beide was waar. 883 00:43:41,620 --> 00:43:45,850 | Terugkeer alles waar een of albei, was waar. 884 00:43:45,850 --> 00:43:51,050 So af te trek wat uit die | gee jou die ^. 885 00:43:51,050 --> 00:43:52,040 ALI: Enige vrae? 886 00:43:52,040 --> 00:43:53,290 Dit was 'n baie inligting. 887 00:43:55,980 --> 00:43:57,510 Almal goed? 888 00:43:57,510 --> 00:44:00,360 >> ROB: Ons kan gaan oor die volgende mense vir die volgende probleem, streep 889 00:44:00,360 --> 00:44:01,680 hoe laat is dit? 890 00:44:01,680 --> 00:44:04,010 Hulle hoef nie tot die volgende probleem. 891 00:44:04,010 --> 00:44:07,830 ALI: Ek het gedink dit was hierdie een. 892 00:44:07,830 --> 00:44:08,830 ROB: Dit is nie. 893 00:44:08,830 --> 00:44:10,085 ALI: Is jy seker? 894 00:44:10,085 --> 00:44:11,300 ROB: Ja, ek is positief. 895 00:44:11,300 --> 00:44:12,970 ALI: Hoekom het ons nie begin om die volgende probleem te doen? 896 00:44:15,710 --> 00:44:19,790 Die probleem is, weer, om dit te verander van onderkas na 'n hoofletter, en dit 897 00:44:19,790 --> 00:44:21,720 bis-operatore te gebruik. 898 00:44:21,720 --> 00:44:22,970 ROB: So sal ons - 899 00:44:25,290 --> 00:44:29,670 Kom ons begin met die binêre voorstelling van 'A', die hoofstad 'A', 900 00:44:29,670 --> 00:44:31,750 wat 65. 901 00:44:31,750 --> 00:44:36,150 So in binêre - 902 00:44:39,960 --> 00:44:47,900 so 'A' = 65, wat = in binêre - 903 00:44:47,900 --> 00:44:51,380 Ek gaan om te mors die getal van 0e. 904 00:44:51,380 --> 00:44:53,670 ALI: So wat sin maak vir almal? 905 00:44:53,670 --> 00:44:57,620 So, 1, geen 2s, geen 4s, geen 8s, geen - 906 00:45:00,238 --> 00:45:07,075 geen 16s, geen 32s, en dan een 64. 907 00:45:07,075 --> 00:45:08,685 ROB: Ja, ek dink dit is een te veel 0s. 908 00:45:08,685 --> 00:45:09,600 ALI: Jammer. 909 00:45:09,600 --> 00:45:13,410 >> ROB: Okay, so ons het die 64 stel, en ons het die 1 stel, en die kombinasie van dié 910 00:45:13,410 --> 00:45:16,030 saam, kry ons 65. 911 00:45:16,030 --> 00:45:17,470 ALI: Cool bone? 912 00:45:17,470 --> 00:45:19,640 ROB: So nou, onderkas "A" - 913 00:45:22,220 --> 00:45:24,260 KENNISGEWING 97 - 914 00:45:24,260 --> 00:45:26,370 wat is die verskil tussen 97 en 65? 915 00:45:26,370 --> 00:45:27,530 SPREKER 28: 32. 916 00:45:27,530 --> 00:45:28,130 ROB: Ja. 917 00:45:28,130 --> 00:45:35,920 So dit is 32, wat is sy eie bietjie, sodat gaan wees 110.001. 918 00:45:35,920 --> 00:45:41,200 En dit gaan om waar te wees vir alle moontlike karakters. 919 00:45:41,200 --> 00:45:49,800 So as ons dink van "D", wat gaan wees 68, wat gaan wees 1.000.011. 920 00:45:49,800 --> 00:45:56,310 En dan kleinletter 'd' gaan wees 68 plus 32, wat is 100, wat 921 00:45:56,310 --> 00:46:00,010 gaan dieselfde ding wat dit was, net daarby die 922 00:46:00,010 --> 00:46:04,300 32 weer, so 1.100.011. 923 00:46:04,300 --> 00:46:08,610 So is die verskil tussen 'n hoofletters en kleinletters brief is net daarby 924 00:46:08,610 --> 00:46:10,170 dat 32-bis posisie. 925 00:46:10,170 --> 00:46:17,670 SPEAKER 29: Is dit nie 1.000.100? 926 00:46:17,670 --> 00:46:19,670 ROB: Wag, dit is 100 - 927 00:46:19,670 --> 00:46:20,480 iets wat ek verkeerd gedoen het. 928 00:46:20,480 --> 00:46:21,730 Dit was nie waar nie. 929 00:46:28,710 --> 00:46:31,150 Ek het gedink dat dit 'n verskil van 3, so dan het ek net vas 930 00:46:31,150 --> 00:46:33,970 die binêre 3 aan die einde. 931 00:46:33,970 --> 00:46:36,710 Dit moet reg wees. 932 00:46:36,710 --> 00:46:37,150 ALI: Dankie. 933 00:46:37,150 --> 00:46:38,080 Goed vir die wys dit uit. 934 00:46:38,080 --> 00:46:40,320 Dit was 'n skerp. 935 00:46:40,320 --> 00:46:43,450 Alle reg, is dat die mense duidelik? 936 00:46:43,450 --> 00:46:45,700 >> ROB: Die verskil tussen die hoofletters en kleinletters weergawe is 937 00:46:45,700 --> 00:46:49,250 altyd net gaan wees 32, en so dit is altyd gaan om 'n bietjie 938 00:46:49,250 --> 00:46:51,840 wat omgekeer moet word om tussen die twee te verander. 939 00:46:51,840 --> 00:46:54,330 ALI: So in daardie geval, weet wat die verskil tussen die hoofstad A en 940 00:46:54,330 --> 00:46:57,130 die kleinletter 'n is 'n goeie ding. 941 00:46:57,130 --> 00:47:01,950 Nie in jou kode, maar konseptueel ten minste, dit is goed. 942 00:47:01,950 --> 00:47:05,880 Sodat julle kan voort te gaan en die kode wat in Spaces nou. 943 00:47:05,880 --> 00:47:08,580 Of moet ons bespreek dit net? 944 00:47:08,580 --> 00:47:09,760 ROB: Ons kan net bespreek dit. 945 00:47:09,760 --> 00:47:10,680 Ek weet nie. 946 00:47:10,680 --> 00:47:11,680 Julle ouens kan probeer. 947 00:47:11,680 --> 00:47:13,560 Praat onder jouself vir 'n bietjie. 948 00:47:13,560 --> 00:47:16,390 Ons gee jou 'n kans om dit te kodeer. 949 00:47:16,390 --> 00:47:17,640 [INTERPOSING STEMME] 950 00:47:19,785 --> 00:47:22,695 ALI: - is cool 951 00:47:22,695 --> 00:47:26,590 SPREKER 30: Dit is soos hacker komedie. 952 00:47:26,590 --> 00:47:31,060 ALI: Ja, ons is maar net die nuus vertel, gaan deur dit. 953 00:47:31,060 --> 00:47:32,310 >> Rob: En ons is terug. 954 00:47:34,950 --> 00:47:35,405 ALI: Dit is soort weird. 955 00:47:35,405 --> 00:47:38,720 Ek voel soos ons moet 'n CS50 nuus stasie en ons kon 956 00:47:38,720 --> 00:47:41,500 eintlik sit soos hierdie. 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: Voel vry om enige vrae te vra as jy verward. 960 00:47:52,280 --> 00:47:53,980 ROB: Is enigiemand vas? 961 00:47:53,980 --> 00:47:57,160 ALI: Ja, dis 'n goeie ding. 962 00:47:57,160 --> 00:47:58,590 ALI: Wag, jy is vas in jou stoel? 963 00:47:58,590 --> 00:48:01,010 Oh. 964 00:48:01,010 --> 00:48:02,260 Ek was 'n bietjie bekommerd. 965 00:48:06,670 --> 00:48:12,150 ROB: Omdat ek net besef dat ons gaan wil 966 00:48:12,150 --> 00:48:13,300 ander bis-operateur. 967 00:48:13,300 --> 00:48:16,985 Vir nou, laat ons net sit hoofletters na onderkas. 968 00:48:23,280 --> 00:48:25,220 ALI: Jammer, ons het almal daardie aankondiging? 969 00:48:25,220 --> 00:48:27,755 Ons gaan om te gaan van hoofletters na onderkas. 970 00:48:27,755 --> 00:48:30,990 ROB: Dan sal ons bespreek kleinletter reg na 'n hoofletter na. 971 00:48:33,820 --> 00:48:36,650 O, nee. 972 00:48:36,650 --> 00:48:39,560 Ons het 'n fout in hierdie, wat, dink ek, ons het nog nooit probeer om te hardloop. 973 00:48:39,560 --> 00:48:44,140 Watter een is net dat char c buite die lus verklaar moet word, want 974 00:48:44,140 --> 00:48:45,805 die omvang daarvan is beperk in die lus. 975 00:48:49,200 --> 00:48:53,060 SPREKER 32: In hierdie geval, is dit verkeerd om 'n nommer te gebruik? 976 00:48:53,060 --> 00:48:56,930 ROB: Eh, jy hoef nie te. 977 00:48:56,930 --> 00:49:02,040 As ek gewaarborg dat kapitaal "A" - of onderkas 'n "minus kapitaal 'A' 978 00:49:02,040 --> 00:49:09,340 was presies 'n bietjie, maar dat jy nie weet dit is 32 - 979 00:49:09,340 --> 00:49:13,160 dinge sou net so goed werk as dit was die 16 bit wat omgekeer - of 980 00:49:13,160 --> 00:49:14,610 nee, ek dink dit wouldn't - 981 00:49:14,610 --> 00:49:18,270 of die 64-bit is omgekeer, moontlik. 982 00:49:18,270 --> 00:49:23,230 Maar jy moet nie nodig om te gebruik 32. 983 00:49:23,230 --> 00:49:26,141 Jy kan plaas onderkas "'n minus kapitaal 'A'. 984 00:49:26,141 --> 00:49:29,340 >> SPEAKER 32: Goed. 985 00:49:29,340 --> 00:49:32,996 Wat jy kan doen as jy voel soos jy te veel skryf is dat jy dit kan definieer 986 00:49:32,996 --> 00:49:33,435 aan die bokant. 987 00:49:33,435 --> 00:49:41,830 Sodat jy kan wees soos, int verskil = onderkas "'n minus kapitaal 'A'. En 988 00:49:41,830 --> 00:49:43,980 dan kan jy tik verskil plaas. 989 00:49:43,980 --> 00:49:45,110 Dit is geldig. 990 00:49:45,110 --> 00:49:48,002 Maar net die gebruik van die getal 32 is 'n soort van - 991 00:49:48,002 --> 00:49:51,104 SPREKER 33: Selfs al is dit as gevolg van die feit dat dit is die 32 bit? 992 00:49:51,104 --> 00:49:52,570 ALI: Ja. 993 00:49:52,570 --> 00:49:54,960 ROB: Daar kan wees - 994 00:49:54,960 --> 00:49:57,780 die enigste waarborg wat ons het jou nodig om te maak, is dat die verskil tussen die 995 00:49:57,780 --> 00:49:59,480 kleinletters en hoofletters is 'n bietjie. 996 00:49:59,480 --> 00:50:04,670 Dit moet nie saak dat dit gebeur met die 32-bis wat omgekeer. 997 00:50:04,670 --> 00:50:06,610 Vir tyd oorwegings, sal ons begin gaan oor hierdie. 998 00:50:09,170 --> 00:50:10,370 Dit is goed as jy nog nie klaar. 999 00:50:10,370 --> 00:50:13,090 Moenie bekommerd wees oor dit. 1000 00:50:13,090 --> 00:50:16,260 ROB: Veronderstel c is 'n hoofletter - 1001 00:50:16,260 --> 00:50:18,030 ons het nie te aanvaar c is 'n hoofletter. 1002 00:50:18,030 --> 00:50:20,750 Ons weet c is 'n hoofletter na hierdie while lus - 1003 00:50:20,750 --> 00:50:22,160 do-while lus. 1004 00:50:22,160 --> 00:50:28,590 Dus beteken dit dat dit lyk iets soos hierdie 'A'. So as ons wil om dit te bring 1005 00:50:28,590 --> 00:50:32,895 'A' tot hierdie "'n", wat ons nodig het om te doen? 1006 00:50:36,890 --> 00:50:41,920 So, hoe sit ons en draai die bietjie? 1007 00:50:48,040 --> 00:50:49,450 ALI: Hoe draai ons dit? 1008 00:50:49,450 --> 00:50:53,010 >> ROB: So weet ons dat ons wil die 32 bietjie om te draai. 1009 00:50:53,010 --> 00:50:59,722 So wat doen 'n "minus" A ", of ons kan skryf 32, maar - 1010 00:50:59,722 --> 00:51:03,090 darn dit, dit is die ander manier om. 1011 00:51:03,090 --> 00:51:07,250 ALI: Okay so Rob hier bereken dat die getal, magie nommer 32. 1012 00:51:07,250 --> 00:51:12,000 So hy is om uit te vind waar daardie bietjie flip gebied sou wees. 1013 00:51:12,000 --> 00:51:14,810 En wat dan sit ons waar die vraagtekens is? 1014 00:51:14,810 --> 00:51:16,740 ROB: Hoe draai ons daardie bietjie? 1015 00:51:16,740 --> 00:51:22,784 In terme van die hoofletter, is dit 'n 0, en ons wil 'n 1. 1016 00:51:22,784 --> 00:51:23,660 SPREKER 34: |. 1017 00:51:23,660 --> 00:51:24,910 ROB: Ja. 1018 00:51:28,780 --> 00:51:38,190 So dit is ons sê ons neem 'A'. Ons ORing dit met 0 - 1019 00:51:38,190 --> 00:51:40,750 1000 - 1020 00:51:40,750 --> 00:51:44,720 en dat =. 1021 00:51:44,720 --> 00:51:45,930 ALI: Beteken dit sin maak vir almal? 1022 00:51:45,930 --> 00:51:48,812 Ons kan gaan bietjie vir bietjie deur dit as jy wil. 1023 00:51:52,030 --> 00:51:56,300 SPREKER 35: Is jy [onhoorbaar]? 1024 00:51:56,300 --> 00:51:57,590 ALI: Waar is die minus teken? 1025 00:51:57,590 --> 00:51:58,500 ROB: O, jy bedoel hier? 1026 00:51:58,500 --> 00:51:59,070 ALI: "O, ja. 1027 00:51:59,070 --> 00:52:00,140 ROB: So ek dink dit is ons. 1028 00:52:00,140 --> 00:52:05,670 Ons kan sê 32, en nou is ons net die gebruik van bis-operateurs. 1029 00:52:05,670 --> 00:52:07,010 ALI: Ons hou nie van magie nommers. 1030 00:52:07,010 --> 00:52:10,460 Ons is nie van plan om dit te doen. 1031 00:52:10,460 --> 00:52:13,592 Ook het ek dink ons ​​moet net gebruik om 'n bis-operateur - 1032 00:52:13,592 --> 00:52:19,042 SPREKER 36: As jy 'n ^ A, sal jy 32? 1033 00:52:19,042 --> 00:52:19,980 SPREKER 37: Ja, ek dink - 1034 00:52:19,980 --> 00:52:21,090 ROB: Ja jy wil. 1035 00:52:21,090 --> 00:52:23,320 ALI: Dit is hoe jy dit sou gedoen het om uit te gaan 1036 00:52:23,320 --> 00:52:25,370 van kapitaal te onderkas. 1037 00:52:25,370 --> 00:52:31,130 >> Nou kan iemand my vertel waarom Rob en ek verander die vinnige en hoe ons gaan 1038 00:52:31,130 --> 00:52:34,040 van hoofletters kleinletters, in plaas van onderkas 1039 00:52:34,040 --> 00:52:37,810 hoofletters soos ons gedoen het voor? 1040 00:52:37,810 --> 00:52:44,520 Is daar iemand enige idees waarom dit dalk moeiliker wees? 1041 00:52:44,520 --> 00:52:44,880 ROB: So ons wil doen - 1042 00:52:44,880 --> 00:52:46,178 ALI: Ja, gaan voort. 1043 00:52:46,178 --> 00:52:49,640 SPREKER 38: Die | operateur was net regtig goed vir die toevoeging. 1044 00:52:49,640 --> 00:52:51,200 ALI: Ja, presies. 1045 00:52:51,200 --> 00:52:58,320 ROB: So wat ons wil doen in die geval kleinletters na 'n hoofletter is, 1046 00:52:58,320 --> 00:53:00,175 sit hierdie "A" - 1047 00:53:08,540 --> 00:53:14,820 Daarom wil ons in sommige getalle hier te sit en 'n paar operateur gebruik sodat dit kom 1048 00:53:14,820 --> 00:53:21,910 aan kapitaal A. Ons is waarskynlik nog steeds met behulp van 32 op een of ander manier, maar nou hoe ons 1049 00:53:21,910 --> 00:53:25,280 kry om dit te kom uit hierdie? 1050 00:53:40,910 --> 00:53:42,750 So c - 1051 00:53:42,750 --> 00:53:44,000 oh, wil ek nog steeds dit ook - 1052 00:53:46,940 --> 00:53:51,055 ALI: So nou as ons die omskakeling van kleinletters weer hoofletters, dan het ons 1053 00:53:51,055 --> 00:53:55,170 doen ^ werking, soos julle sê. 1054 00:53:55,170 --> 00:53:57,650 ROB: Daar is ander maniere wat jy kan dinge doen. 1055 00:53:57,650 --> 00:54:01,680 'N baie van die bis-operateurs uiteindelik baie maklik te definieer in terme van 1056 00:54:01,680 --> 00:54:03,460 ander bis-operateurs. 1057 00:54:03,460 --> 00:54:11,150 So ek gaan ^ of glad nie gebruik nie, maar ^ heeltemal fyn gewerk. 1058 00:54:11,150 --> 00:54:17,910 >> ALI: Okay, so ons gaan om te gaan op die laaste probleem, wat is aan basiese - 1059 00:54:17,910 --> 00:54:22,390 die laaste probleem is om iets te omskep in binêre. 1060 00:54:22,390 --> 00:54:26,350 So, byvoorbeeld, jy het 50, en dan moet jy skakel dit om na 1061 00:54:26,350 --> 00:54:31,400 binêre, wat 110.010. 1062 00:54:31,400 --> 00:54:36,010 En ek dink julle weet almal oor die binêre van die lesing. 1063 00:54:36,010 --> 00:54:39,270 En jy is ook nie veronderstel om 'n leidende 0'e te sit in dit. 1064 00:54:39,270 --> 00:54:41,460 ROB: Jy kan ignoreer dat 'n deel vir nou. 1065 00:54:41,460 --> 00:54:45,250 Die eerste pas, kan jy doen dit so dat daar is 'n toonaangewende 0s. 1066 00:54:45,250 --> 00:54:49,200 En dan kan ons verander dat geen voorste 0'e te hê, as ons tyd. 1067 00:54:49,200 --> 00:54:50,630 ALI: So moenie bekommerd wees oor dat. 1068 00:54:50,630 --> 00:54:52,620 Net probeer om te kry in binêre. 1069 00:54:55,880 --> 00:54:59,855 'N goeie plek om te begin sou wees - 1070 00:54:59,855 --> 00:55:02,010 ROB: Ons nodig het om te vra vir 'n heelgetal. 1071 00:55:02,010 --> 00:55:03,150 ALI: O ja, dit is 'n goeie een. 1072 00:55:03,150 --> 00:55:04,170 Ons kan begin met. 1073 00:55:04,170 --> 00:55:06,870 So jy kan verander die instruksielyn. 1074 00:55:06,870 --> 00:55:08,840 So in plaas van 'n karakter, nou het ons te doen met heelgetalle. 1075 00:55:13,670 --> 00:55:14,920 Koel? 1076 00:55:20,630 --> 00:55:25,300 >> ROB: En nou, wat is ons do-while toestand gaan wees? 1077 00:55:25,300 --> 00:55:27,750 Dit vra vir 'n nie-negatiewe heelgetal is. 1078 00:55:31,080 --> 00:55:34,280 ALI: Wanneer wil ons hou waarna die gebruiker vir iets anders? 1079 00:55:34,280 --> 00:55:35,950 Wanneer dit kleiner as 0. 1080 00:55:35,950 --> 00:55:36,760 ALI: Right. 1081 00:55:36,760 --> 00:55:38,010 ROB: Terwyl ek is minder as 0. 1082 00:55:41,090 --> 00:55:45,120 ALI: Nou wil ons dit te omskep. 1083 00:55:45,120 --> 00:55:48,150 Het julle enige idees van wat om te doen nie? 1084 00:55:48,150 --> 00:55:49,400 Enige Inklings? 1085 00:55:53,610 --> 00:55:54,984 Ja. 1086 00:55:54,984 --> 00:55:57,344 SPEAKER 39: Het ons om dit te omskep, of kan ons net print sommige 0'e en 1s 1087 00:55:57,344 --> 00:55:58,760 wat sou die regte getal wees? 1088 00:55:58,760 --> 00:56:02,070 Kan jy dit doen vir 'n lus en tel deur magte van 2? 1089 00:56:02,070 --> 00:56:03,320 ROB: Ja. 1090 00:56:05,750 --> 00:56:08,425 Jy hoef nie i om te skakel na sy binêre - 1091 00:56:08,425 --> 00:56:13,720 die binêre voorstelling van i sal nie pas binnekant van i. 1092 00:56:13,720 --> 00:56:19,090 Jy hoef net die binêre voorstelling van i te druk. 1093 00:56:19,090 --> 00:56:21,010 ALI: Met ander woorde, jy hoef nie te gaan deur die magte van die twee. 1094 00:56:21,010 --> 00:56:23,710 ROB: Omdat ek reeds gestoor as binaries, so jy hoef nie te 1095 00:56:23,710 --> 00:56:25,110 skakel dit om na binêre. 1096 00:56:25,110 --> 00:56:27,260 Net gaan oor sy binêre, en druk dit. 1097 00:56:30,080 --> 00:56:32,140 En jy gaan nodig bis te gebruik, want jy wil om te kyk na 1098 00:56:32,140 --> 00:56:33,390 die werklike stukkies. 1099 00:56:37,060 --> 00:56:38,600 Jy hoef nie bis-te gebruik, maar moet asseblief nie. 1100 00:56:44,130 --> 00:56:47,160 En dit is eintlik - 1101 00:56:47,160 --> 00:56:50,200 jy kan net doen magte van twee vermenigvuldig met 2. 1102 00:56:50,200 --> 00:56:55,120 Ons gaan oor een van die laaste twee binêre bis-operateurs, 1103 00:56:55,120 --> 00:56:56,410 wat is hierdie een. 1104 00:56:56,410 --> 00:56:58,730 So wanneer jy neem - 1105 00:56:58,730 --> 00:57:00,083 >> ALI: Kan jy gaan deur beide van hulle? 1106 00:57:00,083 --> 00:57:01,440 ROB: Ja. 1107 00:57:01,440 --> 00:57:03,050 So laat ons gaan met 9. 1108 00:57:03,050 --> 00:57:05,210 So 9 links verskuiwing 1 - 1109 00:57:05,210 --> 00:57:12,220 wat verskuiwing beteken verlaat is net al die stukkies beweeg na links en voeg 'n 0. 1110 00:57:12,220 --> 00:57:15,530 So ons beweeg al die stukkies van 9 na die linker-een 1111 00:57:15,530 --> 00:57:20,240 posisie, wat gee ons - 1112 00:57:26,530 --> 00:57:31,570 So sien ons verskuif alles verlaat, en plaas 'n 0 op die 1113 00:57:31,570 --> 00:57:32,730 regterkant. 1114 00:57:32,730 --> 00:57:36,755 As ons geskuif het gelaat deur twee, sou ons alles wat links deur twee verskuif, 1115 00:57:36,755 --> 00:57:41,950 en voeg twee 0'e in die gapings te vul. 1116 00:57:41,950 --> 00:57:43,200 Vraag? 1117 00:57:44,890 --> 00:57:47,510 ALI: So dan regs skuif het 'n soortgelyke ding. 1118 00:57:47,510 --> 00:57:53,190 As jy het 9 regte verskuiwing 1 dan is jy net besig om alles oor te 1119 00:57:53,190 --> 00:57:57,890 die reg, jy verloor 'n syfer, so 100 plaas. 1120 00:57:57,890 --> 00:58:04,142 ROB: So jy dit is goed dat jy die bietjie wat gebeur het om alles verloor 1121 00:58:04,142 --> 00:58:05,200 die pad na regs. 1122 00:58:05,200 --> 00:58:08,850 Daar is verskillende tipes van reg skofte, maar basies wat jy kan dink 1123 00:58:08,850 --> 00:58:11,410 regs skuif as net te verdeel deur 2. 1124 00:58:11,410 --> 00:58:14,430 En jy kan dink van links skuif as vermenigvuldig met 2. 1125 00:58:14,430 --> 00:58:16,490 So as jy bekeer hierdie - 1126 00:58:16,490 --> 00:58:22,350 as jy bekeer 9 verskuiwing 1, wat is gelyk aan 10.010, as jy eintlik het 1127 00:58:22,350 --> 00:58:25,100 deur die binêre en uitgepluis het wat dit was, sou dit wees net 18. 1128 00:58:25,100 --> 00:58:26,880 Ons het net vermeerder deur 2. 1129 00:58:26,880 --> 00:58:30,982 1001 links skuif 2 gaan wees 36. 1130 00:58:30,982 --> 00:58:32,400 Ons vermenigvuldig deur 4. 1131 00:58:41,740 --> 00:58:45,360 Okay, koel, so dit is 'n handige bis-operateur vir hierdie een. 1132 00:58:52,570 --> 00:58:53,330 Meer verwarring? 1133 00:58:53,330 --> 00:58:54,870 Het julle ouens wil om dit te probeer? 1134 00:58:54,870 --> 00:58:58,970 Of ons kan dit net reg in te spring en begin dit? 1135 00:58:58,970 --> 00:59:01,140 ROB: Ons moet seker reg in te spring 1136 00:59:01,140 --> 00:59:01,880 ALI: Ja, okay. 1137 00:59:01,880 --> 00:59:03,370 Rob: En deur dit loop saam. 1138 00:59:03,370 --> 00:59:04,440 >> ALI: Wel, ek sal net gaan in dit. 1139 00:59:04,440 --> 00:59:09,700 So as hy in die begin gesê het, gaan ons net gaan deur bietjie vir bietjie by. 1140 00:59:09,700 --> 00:59:11,890 So ons gaan 'n lus nodig. 1141 00:59:11,890 --> 00:59:16,730 Is daar iemand het 'n idee van die beste soort lus om te gaan deur middel van hierdie? 1142 00:59:16,730 --> 00:59:20,544 Ons het terwyl loops, do-while loops, loops. 1143 00:59:20,544 --> 00:59:22,400 SPREKER 40: do-while lus? 1144 00:59:22,400 --> 00:59:25,150 ROB: So onthou wat ek gesê het voor oor, ons is slegs met behulp van do-while 1145 00:59:25,150 --> 00:59:27,390 loops toevoer van die gebruiker te kry. 1146 00:59:27,390 --> 00:59:30,890 Jy sal mooi nooit veel ooit gebruik hulle vir enigiets anders nie. 1147 00:59:30,890 --> 00:59:33,660 ALI: Die probleem met die do-while loops is dit nie iets voor dit kontroleer of dit vir 1148 00:59:33,660 --> 00:59:34,470 die toestand. 1149 00:59:34,470 --> 00:59:36,540 Dus, kan dit iets sleg doen - 1150 00:59:36,540 --> 00:59:38,640 wil hê, seer - 1151 00:59:38,640 --> 00:59:40,350 iets doen wat nie moontlik is nie. 1152 00:59:40,350 --> 00:59:42,290 So jy wil nie eers te kontroleer. 1153 00:59:42,290 --> 00:59:47,620 ROB: Daar is 'n baie van die gevalle waar jy kan gebruik do-while loops, maar mense 1154 00:59:47,620 --> 00:59:52,120 nie van u verwag om hulle te gebruik nie, tensy dit is die toevoer van die gebruiker. 1155 00:59:52,120 --> 00:59:54,215 Dus het ons gebruik om ons do-while lus i te kry. 1156 00:59:57,160 --> 01:00:01,260 Hoeveel keer is ons lus gaan om te wil loop? 1157 01:00:01,260 --> 01:00:04,060 Ons wil loop oor elk van die stukkies van i. 1158 01:00:04,060 --> 01:00:06,302 Hoeveel stukkies in i? 1159 01:00:06,302 --> 01:00:07,266 SPREKER 41: 32. 1160 01:00:07,266 --> 01:00:07,750 ALI: Ja. 1161 01:00:07,750 --> 01:00:09,850 ROB: So daar is 32 bisse. 1162 01:00:09,850 --> 01:00:12,920 Ons wil nie om te sê 32. 1163 01:00:12,920 --> 01:00:16,230 Ons wil plaas sizeof om te sê - 1164 01:00:16,230 --> 01:00:18,226 wat het jy gesien dat in die klas nie? 1165 01:00:18,226 --> 01:00:19,100 ALI: Nee. 1166 01:00:19,100 --> 01:00:20,380 ROB: Waarom sê dat om te gebruik - 1167 01:00:20,380 --> 01:00:22,160 sizeof (int) keer 8 - 1168 01:00:22,160 --> 01:00:23,530 ALI: So, sizeof is - 1169 01:00:23,530 --> 01:00:27,050 >> SPREKER 42: [onhoorbaar] 1170 01:00:27,050 --> 01:00:27,440 ALI: Interessante. 1171 01:00:27,440 --> 01:00:31,610 So, sizeof is 'n ingeboude in die C-funksie, waar dit net jy die vertel 1172 01:00:31,610 --> 01:00:32,500 aantal bisse in - 1173 01:00:32,500 --> 01:00:33,220 ROB: Bytes. 1174 01:00:33,220 --> 01:00:34,210 ALI: Bytes, jammer - 1175 01:00:34,210 --> 01:00:39,990 die aantal grepe wat 'n veranderlike het 'n waarde op te slaan. 1176 01:00:39,990 --> 01:00:46,205 So ek dink hy het in die klas, dan 'n int 4 grepe miskien. 1177 01:00:46,205 --> 01:00:46,610 Koel? 1178 01:00:46,610 --> 01:00:50,610 ROB: Maar jy moet nie nodig om te weet dat 'n int 4 grepe. 1179 01:00:50,610 --> 01:00:52,670 Jy moet in staat wees om te sê - 1180 01:00:52,670 --> 01:00:55,870 jy moet gebruik sizeof (int) 4 bytes te kry. 1181 01:00:55,870 --> 01:00:59,170 En dit is eintlik belangrik is vir 'n paar dinge. 1182 01:00:59,170 --> 01:01:01,650 Dalk nie 'n int 4 grepe. 1183 01:01:01,650 --> 01:01:04,050 Op 'n ander rekenaar, kan 'n int 8 grepe. 1184 01:01:04,050 --> 01:01:08,500 So Jou program sal nie werk op die rekenaar omdat jy hard-gekodeerde 32 1185 01:01:08,500 --> 01:01:12,230 stukkies toe op die rekenaar gebeur met 64 stukkies. 1186 01:01:12,230 --> 01:01:15,260 ALI: So jy het die totale aantal bisse wat jy wil om dit om te keer. 1187 01:01:15,260 --> 01:01:17,480 Rob: En die verskil tussen 'n greep en 'n bietjie is dat daar 1188 01:01:17,480 --> 01:01:19,100 is 8 bisse in 'n greep. 1189 01:01:19,100 --> 01:01:22,110 So sizeof (int) terugkeer 4 grepe, dan het ons dit te vermenigvuldig 1190 01:01:22,110 --> 01:01:24,420 deur 8 32 stukkies te kry. 1191 01:01:24,420 --> 01:01:27,680 >> ALI: Okay, so ons weet die maksimum en ons weet wat ons wil om te gaan - 1192 01:01:27,680 --> 01:01:29,260 ons wil om te gaan deur almal van hulle. 1193 01:01:29,260 --> 01:01:32,950 So ons wil om te gaan van 0 tot numBits. 1194 01:01:32,950 --> 01:01:37,160 So nie almal weet hoe om die lus vir dit te skryf? 1195 01:01:37,160 --> 01:01:37,790 Iemand? 1196 01:01:37,790 --> 01:01:39,680 SPREKER 43: [onhoorbaar] 1197 01:01:39,680 --> 01:01:44,130 ALI: So jy wil die aantal i van die nulde bietjie te verken 1198 01:01:44,130 --> 01:01:47,840 eerste bietjie, die tweede bietjie, die derde bietjie, al die pad na numBits. 1199 01:01:47,840 --> 01:01:50,972 Die maksimum aantal van die stukkies wat jy kan kry. 1200 01:01:54,420 --> 01:01:57,780 ROB: Wat is die gemeenskaplike lus Ons gebruik wat ons wil iets x keer te doen? 1201 01:01:57,780 --> 01:01:58,280 ALI: Vir. 1202 01:01:58,280 --> 01:01:59,280 Perfect. 1203 01:01:59,280 --> 01:02:00,440 So ons het. 1204 01:02:00,440 --> 01:02:05,242 En dan sal ons skep 'n Iterator, wat nie gaan wees 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 So ons sal begin by 0. 1208 01:02:09,740 --> 01:02:13,110 En dan moet ons gaan om die toestand te hê om seker te maak, terwyl jy 1209 01:02:13,110 --> 01:02:14,968 gaan deur dit elke keer - 1210 01:02:14,968 --> 01:02:16,960 [INTERPOSING STEMME] 1211 01:02:16,960 --> 01:02:17,960 ROB: j. 1212 01:02:17,960 --> 01:02:19,970 ALI: j is minder as numBits. 1213 01:02:19,970 --> 01:02:23,680 So ons wil nie die werklike gelyk aan een te doen, want hulle is numBits 1214 01:02:23,680 --> 01:02:25,365 totaal, en ons begin by 0. 1215 01:02:25,365 --> 01:02:26,360 So ons eintlik gaan hê - 1216 01:02:26,360 --> 01:02:27,400 SPREKER 44: O. 1217 01:02:27,400 --> 01:02:29,300 ALI: Die indekse eindig nie by numBits minus 1. 1218 01:02:29,300 --> 01:02:34,070 ROB: Ons benoem die stukkies 0 tot 31, het ons etiketteer nie van 1 tot 32. 1219 01:02:34,070 --> 01:02:36,970 ALI: En dan moet ons gaan elke keer te tel een vir een, want ons wil 1220 01:02:36,970 --> 01:02:38,050 check elke enkele een. 1221 01:02:38,050 --> 01:02:39,851 So ons gaan j + +. 1222 01:02:39,851 --> 01:02:42,740 >> SPREKER 45: Waarom doen julle dit? 1223 01:02:42,740 --> 01:02:46,100 SPEAKER 46: Waarom gaan jy deur elke bietjie? 1224 01:02:46,100 --> 01:02:49,310 ROB: So ons wil om te gaan deur elke bietjie en - 1225 01:02:52,780 --> 01:02:55,100 So laat ons sê ons het 'n paar nommer. 1226 01:02:55,100 --> 01:02:56,195 ALI: 68. 1227 01:02:56,195 --> 01:02:57,470 ROB: Ons kan gebruik 68. 1228 01:02:57,470 --> 01:03:00,450 So het die binêre gaan wees 100.100. 1229 01:03:00,450 --> 01:03:05,540 So, dit is binnekant van i en ons wil om te gaan oor elk van hierdie stukkies. 1230 01:03:05,540 --> 01:03:06,450 Is dit 'n 1? 1231 01:03:06,450 --> 01:03:07,320 Druk 1. 1232 01:03:07,320 --> 01:03:08,120 Is dit 'n 0? 1233 01:03:08,120 --> 01:03:09,100 Druk 0. 1234 01:03:09,100 --> 01:03:10,530 Dan gaan ons na die volgende bietjie. 1235 01:03:10,530 --> 01:03:11,210 Is dit 'n 1? 1236 01:03:11,210 --> 01:03:11,610 Druk 1. 1237 01:03:11,610 --> 01:03:11,830 Is 'n 0? 1238 01:03:11,830 --> 01:03:13,080 Druk 0. 1239 01:03:14,880 --> 01:03:16,710 ALI: Cool, okay. 1240 01:03:16,710 --> 01:03:22,880 Nou is ons op die regte indeks vir waar daardie bietjie. 1241 01:03:25,380 --> 01:03:28,080 Hoe kan ons daardie spesifieke een gaan? 1242 01:03:28,080 --> 01:03:33,130 Kom ons sê dat ons by j = 0, so ons wil om seker te maak die 0-indeks van die bietjie. 1243 01:03:33,130 --> 01:03:37,980 So, in hierdie geval, hierdie een. 1244 01:03:37,980 --> 01:03:41,930 >> So nou hoe ons te werk gaan check - oh, sou dit hierdie een wees. 1245 01:03:41,930 --> 01:03:42,810 ROB: Ja. 1246 01:03:42,810 --> 01:03:44,310 ALI: Jammer. 1247 01:03:44,310 --> 01:03:47,930 Hoe sou ons, in 'n sekere sin gaan om seker te maak dat een? 1248 01:03:47,930 --> 01:03:52,030 Hoe sal ons kyk of dit 'n 0 of 'n 1? 1249 01:03:52,030 --> 01:03:52,730 Wel let's - 1250 01:03:52,730 --> 01:03:53,940 KLAS: 1? 1251 01:03:53,940 --> 01:03:54,390 ALI: En? 1252 01:03:54,390 --> 01:03:55,010 Ja. 1253 01:03:55,010 --> 01:03:57,810 ROB: So laat ons sê ons het reeds 1. 1254 01:03:57,810 --> 01:04:02,470 Dan is hierdie &, sal dit terugkeer of dit was 'n 1 of 'n 0. 1255 01:04:05,580 --> 01:04:08,200 ALI: Sodat ons kan gaan. 1256 01:04:08,200 --> 01:04:10,695 En ons kan doen as julle sê, doen die funksie. 1257 01:04:13,810 --> 01:04:15,560 ROB: int - 1258 01:04:15,560 --> 01:04:18,290 hoe ek wil om dit te sê - 1259 01:04:18,290 --> 01:04:24,250 isone = i. 1260 01:04:24,250 --> 01:04:29,770 En vir die eerste bietjie ons gebeur om te kyk na, doen ons B & 1. 1261 01:04:29,770 --> 01:04:33,302 Nou wat gaan ons wil en vir die tweede bietjie? 1262 01:04:33,302 --> 01:04:34,294 SPREKER 47: 2. 1263 01:04:34,294 --> 01:04:36,110 ROB: Ja, die tweede dat ons op 2. 1264 01:04:36,110 --> 01:04:39,100 ALI: Jy sal sien dat die 1 het verskuif na die linker een. 1265 01:04:39,100 --> 01:04:44,320 So het ons geleer enige bis-operateurs om daardie funksie te doen? 1266 01:04:44,320 --> 01:04:45,160 ROB: Die volgende een - 1267 01:04:45,160 --> 01:04:46,280 ALI: Ja, reg, presies. 1268 01:04:46,280 --> 01:04:48,670 So dit is 'n links skuif. 1269 01:04:48,670 --> 01:04:51,120 In plaas van altyd kontroleer met 1, ons gaan om dit te skuif. 1270 01:04:51,120 --> 01:04:53,470 En hoeveel keer gaan ons dit te skuif? 1271 01:04:53,470 --> 01:04:59,340 As ons die nulde 1 kontroleer dan gaan ons dit te beweeg nul. 1272 01:04:59,340 --> 01:04:59,975 Ja, presies. 1273 01:04:59,975 --> 01:05:02,090 So jy het skuif dit deur j. 1274 01:05:02,090 --> 01:05:02,550 Perfect. 1275 01:05:02,550 --> 01:05:03,550 So nou weet ons - 1276 01:05:03,550 --> 01:05:06,450 ons het hierdie int as dit is 1, en dan - 1277 01:05:10,690 --> 01:05:14,670 so Rob se soort van bedrog hier - 1278 01:05:14,670 --> 01:05:18,090 en so nou is hy gaan voort en hy net sê dat as dit werklik is 1, 1279 01:05:18,090 --> 01:05:23,540 omdat 1 evalueer waar, so ons het nie om te sê ISF isone gelyk aan 1 - 1280 01:05:23,540 --> 01:05:29,210 so as isone, dan druk ons ​​1, en andersins is ons druk 0. 1281 01:05:29,210 --> 01:05:33,350 >> ROB: So ons program het 'n algemene fout. 1282 01:05:33,350 --> 01:05:35,845 Wel, vrae op die eerste. 1283 01:05:35,845 --> 01:05:41,692 SPREKER 48: Kan jy ooit die isone binne die vier werking deel en 1284 01:05:41,692 --> 01:05:47,804 dan skuif dit self as die laaste deel? 1285 01:05:47,804 --> 01:05:50,050 So isone gelyk aan 1 en dan - 1286 01:05:50,050 --> 01:05:53,140 ROB: Ja, jy kan. 1287 01:05:53,140 --> 01:05:57,200 Ons kan eintlik wys dat wanneer ons los die fout wat ek nou gaan 1288 01:05:57,200 --> 01:06:00,050 Bespreek met julle almal. 1289 01:06:00,050 --> 01:06:03,470 Let op die einde gaan ons oor dinge. 1290 01:06:03,470 --> 01:06:10,570 Gegewe hierdie binêre voorstelling, is ons begin met die nulde bietjie. 1291 01:06:10,570 --> 01:06:13,010 As dit 'n 0, dan is ons druk - 1292 01:06:13,010 --> 01:06:15,620 Wel, dit is 'n 0, so ons is druk 0. 1293 01:06:15,620 --> 01:06:16,860 Dan gaan ons na die tweede bietjie. 1294 01:06:16,860 --> 01:06:19,100 Dit is 'n 0, so ons druk 0. 1295 01:06:19,100 --> 01:06:20,290 Dan gaan ons na die derde bietjie. 1296 01:06:20,290 --> 01:06:22,950 Dit is 'n 1, sodat ons druk 1. 1297 01:06:22,950 --> 01:06:24,580 ALI: So dit is agteruit. 1298 01:06:24,580 --> 01:06:27,906 So hoe gaan jy ouens stel voor dat ons los dit en gaan na die ander kant? 1299 01:06:27,906 --> 01:06:28,900 SPREKER 49: [onhoorbaar] 1300 01:06:28,900 --> 01:06:29,490 ROB: Ja. 1301 01:06:29,490 --> 01:06:34,500 So in plaas van gaan van 0 tot numBits, sal ons gaan uit numBits stukkies 0. 1302 01:06:34,500 --> 01:06:35,600 ALI: So [onhoorbaar] 1303 01:06:35,600 --> 01:06:36,940 kan altyd die ander kant. 1304 01:06:36,940 --> 01:06:38,970 ROB: NumBits minus 1, want dit is die laaste nubmer - 1305 01:06:38,970 --> 01:06:41,160 ALI: Omdat dit gaan 0-31. 1306 01:06:41,160 --> 01:06:44,420 En dan sal ons altyd seker maak dat dit is groter as 0, sodat jy nie gaan nie 1307 01:06:44,420 --> 01:06:46,100 te ver na regs. 1308 01:06:46,100 --> 01:06:48,800 En dan sal jy altyd deur 1 aftrek om te gaan na die regterkant. 1309 01:06:48,800 --> 01:06:52,240 >> ROB: So nou is ons het 'n omgekeerde lus, en die nommer is terug in druk 1310 01:06:52,240 --> 01:06:53,586 in die regte manier. 1311 01:06:53,586 --> 01:06:57,560 SPREKER 50: Het jy nie die verskuiwing ding te verander? 1312 01:06:57,560 --> 01:06:58,810 ALI: So no. 1313 01:07:03,810 --> 01:07:06,470 ROB: Ons doen presies dieselfde, behalwe nou 1314 01:07:06,470 --> 01:07:07,470 in die omgekeerde volgorde. 1315 01:07:07,470 --> 01:07:14,170 So in plaas van om die verskuiwing deur numBits minus 1 ongeag om dit te kry 1316 01:07:14,170 --> 01:07:17,430 bietjie is, in plaas van dat dit die laaste te doen, sal ons net doen dit eers. 1317 01:07:19,970 --> 01:07:22,970 Deur die omkeer van hierdie hier, het ons die volgorde van alles 1318 01:07:22,970 --> 01:07:24,190 wat gebeur binne-in. 1319 01:07:24,190 --> 01:07:28,610 Maar ons wil nie om te verander wat gebeur binne at all. 1320 01:07:28,610 --> 01:07:29,860 ALI: Maak dit sin? 1321 01:07:32,240 --> 01:07:33,660 Verwerking? 1322 01:07:33,660 --> 01:07:41,200 Okay, iemand anders het so enige ander konseptuele vrae? 1323 01:07:41,200 --> 01:07:45,030 ALI: Voordat ons gaan in sy punt wat - 1324 01:07:45,030 --> 01:07:46,280 ALI: Alle reg, goed gaan. 1325 01:07:48,350 --> 01:07:53,160 Rob: In plaas van die gebruik van j te wees van ons - 1326 01:07:55,780 --> 01:08:00,550 in plaas van die gebruik van j altyd te skuif, soos die een links skuif j, ek dink wat 1327 01:08:00,550 --> 01:08:04,120 jy sê, is hou nie, j gebruik self. 1328 01:08:04,120 --> 01:08:09,560 So is dit vir j - 1329 01:08:09,560 --> 01:08:14,656 Ek dink dit is die harde - j = 1 << 31. 1330 01:08:14,656 --> 01:08:16,200 Is dit wat ek wil? 1331 01:08:16,200 --> 01:08:18,470 Ek dink dit is << 31. 1332 01:08:18,470 --> 01:08:22,840 j> = 1. 1333 01:08:22,840 --> 01:08:32,319 j >>, >> isone, i & j - 1334 01:08:32,319 --> 01:08:35,620 so moet julle nou in plaas van die gebruik van - 1335 01:08:35,620 --> 01:08:38,370 ALI: Jy voortdurend in beweging j in plaas van 'n 1336 01:08:38,370 --> 01:08:40,520 indeks om dit na te gaan. 1337 01:08:40,520 --> 01:08:42,130 Dit is nie so sleg nie. 1338 01:08:42,130 --> 01:08:43,960 Ons is met behulp van 'n soortgelyke soort van logika. 1339 01:08:43,960 --> 01:08:46,202 So as jy gaan terug - 1340 01:08:46,202 --> 01:08:50,020 oh, maar dit gaan om dit te verloor. 1341 01:08:50,020 --> 01:08:51,380 Goed, jy is net gaan om dit weer te tik. 1342 01:08:51,380 --> 01:08:56,880 As jy sien dat ons 'n 1 << j bedrag van die tye, en ons was 1343 01:08:56,880 --> 01:09:02,279 verhoog van j elke keer deur 'n inkrement, maar hierdie keer in plaas 1344 01:09:02,279 --> 01:09:06,010 hulle doen die inkrement van j by die top binne die lus. 1345 01:09:06,010 --> 01:09:10,890 So in plaas van altyd beweeg dit af - 1346 01:09:10,890 --> 01:09:15,220 ROB: Die heel eerste iterasie van die lus, ons het j is 10.000. 1347 01:09:15,220 --> 01:09:20,000 Die volgende iterasie van die lus is 01.000. 1348 01:09:20,000 --> 01:09:22,380 Die volgende iterasie is dat. 1349 01:09:22,380 --> 01:09:26,800 En die 1 is net gaan om voortplantingsmateriaal af te hou totdat ons getref die baie 1350 01:09:26,800 --> 01:09:29,729 einde, waar dit nou is. 1351 01:09:29,729 --> 01:09:33,990 Die volgende een, is die 1 gaan word gestoot af, en j is nie meer 'n groter 1352 01:09:33,990 --> 01:09:35,090 as of gelyk aan 1. 1353 01:09:35,090 --> 01:09:38,380 Ek kon ook sit groter as 0, dieselfde verskil. 1354 01:09:38,380 --> 01:09:41,580 En dan is dit is dit. 1355 01:09:41,580 --> 01:09:43,720 Vrae? 1356 01:09:43,720 --> 01:09:44,760 Ja. 1357 01:09:44,760 --> 01:09:49,740 >> SPREKER 51: [onhoorbaar] 1358 01:09:49,740 --> 01:09:51,729 ROB: So wat is dieselfde as - 1359 01:09:51,729 --> 01:09:57,270 het jy gesien j + = 3? 1360 01:09:57,270 --> 01:10:00,960 So, dit is dieselfde as j = j + 3? 1361 01:10:00,960 --> 01:10:05,560 Jy kan dit doen vir feitlik enige operateur in C. So j >> = 3 is 1362 01:10:05,560 --> 01:10:10,490 gelyk is aan j = j >> 3. 1363 01:10:13,980 --> 01:10:16,760 So dit werk ook met bis-operateurs. 1364 01:10:16,760 --> 01:10:19,630 En ek moet nie gestel het 31 hier. 1365 01:10:19,630 --> 01:10:23,790 Ek moet sit het numBits - 1. 1366 01:10:23,790 --> 01:10:25,380 ALI: Yay, geen magic nommers. 1367 01:10:25,380 --> 01:10:29,070 Okay, dis 04:00 al, so as jy ouens het om te gaan - maar doen dit maak sin? 1368 01:10:29,070 --> 01:10:30,320 Het julle enige ander vrae? 1369 01:10:33,920 --> 01:10:38,470 ROB: Ek is ook van plan om te gooi in dat as ons wou - 1370 01:10:38,470 --> 01:10:41,326 het hy drieledige operateur bespreek by almal? 1371 01:10:41,326 --> 01:10:42,730 ALI: No 1372 01:10:42,730 --> 01:10:45,090 Dis oukei. 1373 01:10:45,090 --> 01:10:46,970 ROB: So jy kan kyk na dit vir die volgende keer. 1374 01:10:51,030 --> 01:10:52,080 ALI: Goed, regtig? 1375 01:10:52,080 --> 01:10:53,150 Nou is jy net te wys af. 1376 01:10:53,150 --> 01:10:54,210 ROB: Nee, nou it's - 1377 01:10:54,210 --> 01:11:00,490 dit is wat mense belangstel kry, en nou het hulle gaan kyk na dit. 1378 01:11:00,490 --> 01:11:02,640 So nou, dit nie dieselfde ding, in een stap. 1379 01:11:05,150 --> 01:11:10,950 So eers, I & J 1? 1380 01:11:10,950 --> 01:11:12,530 Is dit waar? 1381 01:11:12,530 --> 01:11:17,000 As dit so is, druk 1, anders, druk 0. 1382 01:11:17,000 --> 01:11:19,190 ALI: Maar om dit te doen die ander kant is perfek boete sowel. 1383 01:11:19,190 --> 01:11:20,920 Dit het dieselfde logika. 1384 01:11:20,920 --> 01:11:22,730 So dit is nie soos die een is - 1385 01:11:22,730 --> 01:11:24,620 ROB: Op hierdie punt, kan ons ontslae te raak van daardie kode tussen krulhakies, want dit is net 1386 01:11:24,620 --> 01:11:27,190 'n een-lyn loop. 1387 01:11:27,190 --> 01:11:29,370 ALI: Okay, so beteken dit sin maak? 1388 01:11:29,370 --> 01:11:30,370 Dit was soort van 'n sprong. 1389 01:11:30,370 --> 01:11:34,870 Maar dit was net soort van die sintaksis, meer so. 1390 01:11:34,870 --> 01:11:36,250 >> Koel? 1391 01:11:36,250 --> 01:11:37,500 Enige ander vrae? 1392 01:11:40,880 --> 01:11:41,570 ROB: Alle reg. 1393 01:11:41,570 --> 01:11:42,310 ALI: Alle reg, cool. 1394 01:11:42,310 --> 01:11:43,560 Dankie vir die artikel.