1 00:00:00,000 --> 00:00:02,440 [Powered by Google Translate] [Wiki 7] 2 00:00:02,440 --> 00:00:04,730 [David J. Malan - Chuo Kikuu cha Harvard] 3 00:00:04,730 --> 00:00:07,490 [Hii ni CS50. - CS50.TV] 4 00:00:07,490 --> 00:00:12,280 Wote haki. Karibu tena. Hii ni CS50, na hii ni mwanzo wa wiki 7. 5 00:00:12,280 --> 00:00:14,690 michache ya matangazo kidogo: 6 00:00:14,690 --> 00:00:18,150 Pset5 ni sasa katika maendeleo, au hivi karibuni itakuwa, 7 00:00:18,150 --> 00:00:21,590 na napenda kusema, kabisa uaminifu, hii haina huwa na kuwa miongoni mwa changamoto zaidi 8 00:00:21,590 --> 00:00:24,460 wa seti kozi ya tatizo, hivyo basi mimi kutaja hili sasa 9 00:00:24,460 --> 00:00:28,190 hivyo kwamba wiki hii zaidi ya milele wewe usingoje mpaka, kusema, Jumatano usiku 10 00:00:28,190 --> 00:00:29,920 au Alhamisi usiku kwa kupiga mbizi in 11 00:00:29,920 --> 00:00:32,369 Hii ni dhahiri pset kuvutia. Tunadhani ni fun. 12 00:00:32,369 --> 00:00:36,110 Kama kweli kupata kikamilifu sahihi na unaweza kisha changamoto kinachojulikana Big Bodi, 13 00:00:36,110 --> 00:00:39,830 utakuwa na fursa ya mechi Wits na baadhi ya wafanyakazi wa kozi 14 00:00:39,830 --> 00:00:41,620 na baadhi ya wanafunzi wako. 15 00:00:41,620 --> 00:00:44,670 Nini Bodi Big ni ni mara moja una yako Spell-Checker kazi, 16 00:00:44,670 --> 00:00:48,860 wewe utakuwa na uwezo wa kwenda kwa cs50.net baada ya mbio amri, 17 00:00:48,860 --> 00:00:52,430 rena opt katika, na kisha kiasi cha muda na kiasi cha RAM na zaidi 18 00:00:52,430 --> 00:00:56,130 kwamba una kutumika katika utekelezaji yako itakuwa exhibited hapa nyumbani ukurasa kozi ya. 19 00:00:56,130 --> 00:00:59,740 Utagundua kuwa rundo zima la folks hizi hapa ni waliotajwa kama wafanyakazi 20 00:00:59,740 --> 00:01:04,220 tangu mwishoni mwa wiki, wafanyakazi walidhani itakuwa furaha kwa kujaribu outdo kila mmoja. 21 00:01:04,220 --> 00:01:07,390 Hivyo kutambua kwamba lengo hapa ni si kwa outdo wafanyakazi. 22 00:01:07,390 --> 00:01:09,790 Hata mimi tu hapa katika idadi ya 13. 23 00:01:09,790 --> 00:01:13,790 Rena opt katika, lakini ni fursa ya kuona jinsi tu kidogo RAM 24 00:01:13,790 --> 00:01:16,790 na jinsi wachache CPU sekunde unaweza kutumia vis-a-vis baadhi ya wanafunzi wako. 25 00:01:16,790 --> 00:01:20,540 >> Na mimi itabidi kukubali kwamba Kevin Michael Schmid, 26 00:01:20,540 --> 00:01:23,750 sasa katika idadi 1 nafasi kama moja ya TFS, 27 00:01:23,750 --> 00:01:28,120 hii ni utekelezaji kwamba sisi kuwaita haiwezekani 28 00:01:28,120 --> 00:01:32,700 kutokana na kwamba yeye kutumia RAM karibu na karibu sekunde 0 0 kwa upakiaji. 29 00:01:32,700 --> 00:01:35,670 Hivyo tutaweza kutunza offline Kevin. [Kicheko] 30 00:01:35,670 --> 00:01:40,950 Kuna baadhi ya ujuzi Kevin ni kuweka kwa mtihani hapa. 31 00:01:40,950 --> 00:01:45,280 Moja ya mambo sisi mawazo tunatarajia kufanya pia ni sasa CS50x ni wiki katika maendeleo, 32 00:01:45,280 --> 00:01:49,520 na wewe guys ni kama sehemu kubwa ya jaribio hili kama wale wanafunzi ni. 33 00:01:49,520 --> 00:01:53,720 Tumekuwa akawauliza kama sehemu ya pset0 yao, ambayo ilikuwa vile vile kuwasilisha mradi Scratch 34 00:01:53,720 --> 00:01:58,280 ya maslahi yao - mchezo, kipande maingiliano ya sanaa, uhuishaji, au kama - 35 00:01:58,280 --> 00:02:03,700 1 - 2 video kwa dakika, kama wangependa, kusema hello dunia na ambao wao kweli ni. 36 00:02:03,700 --> 00:02:06,780 Nilidhani ningependa kushiriki na wewe michache tu ya video ambayo yamekuwa in hivi sasa 37 00:02:06,780 --> 00:02:10,759 kwa sababu kwa ajili yetu, juu ya wafanyakazi angalau, ni kweli imekuwa kusisimua 38 00:02:10,759 --> 00:02:14,220 na msukumo wa kuona folks hizi kutoka duniani kote - nchi zote duniani kote - 39 00:02:14,220 --> 00:02:18,160 tuning katika, juu ya mambo yote, bila shaka kwa sayansi ya kompyuta kwenye mtandao, 40 00:02:18,160 --> 00:02:20,410 kama ni kwa sababu wanataka kuendelea yao masomo wenyewe, 41 00:02:20,410 --> 00:02:22,300 wanataka kuchukua kazi yao katika mwelekeo mpya, 42 00:02:22,300 --> 00:02:24,390 wanataka kujaza mapengo katika maarifa yao wenyewe, 43 00:02:24,390 --> 00:02:27,190 hivyo baadhi ya sababu moja kwamba wewe guys labda kuwa hapa. 44 00:02:27,190 --> 00:02:31,090 >> Basi, mimi kukupa moja vile mwanafunzi hapa. Unaweza kuongeza kiasi kidogo tu. 45 00:02:31,090 --> 00:02:35,520 Hapa ni moja ya maoni mwanafunzi wetu wa 1-dakika. 46 00:02:35,520 --> 00:02:40,380 Hello, ulimwengu. Mimi ni mwanafunzi wa uhandisi viwanda hapa katika Malaga, Hispania. 47 00:02:40,380 --> 00:02:45,840 Mimi msisimko juu ya kozi hii online kwa sababu nampenda sayansi ya kompyuta, kweli mimi, 48 00:02:45,840 --> 00:02:48,880 na mimi kweli kufahamu kwamba mimi kupata kuchunguza yake. 49 00:02:48,880 --> 00:02:51,940 Na ukweli kwamba naweza kujifunza huo wote wa guys kufanya 50 00:02:51,940 --> 00:02:57,040 lakini badala ya kuwa katika Harvard mimi ni katika Malaga, jinsi ya kushangaza ni kwamba? 51 00:02:57,040 --> 00:03:02,040 Naam, mimi Fernando, na hii ni CS50. Angalia guys wewe. 52 00:03:02,040 --> 00:03:07,100 [Kicheko] Mwingine clip sisi hasa kama, utapata kwamba Kiingereza hii muungwana ni si hivyo nguvu. 53 00:03:07,100 --> 00:03:11,520 Inaonekana kama yeye alikuwa ni mashine kutafsiriwa, hivyo tafsiri wenyewe ni kidogo si mkamilifu, 54 00:03:11,520 --> 00:03:15,790 lakini hii ilikuwa ni moja ya favorites yetu hivi sasa vilevile. 55 00:03:25,080 --> 00:03:29,980 [♪ ♪] 56 00:03:29,980 --> 00:03:32,370 Hello, ulimwengu. [Akizungumza katika Kijapani] 57 00:03:32,370 --> 00:03:39,830 [Nina kusalimia kwa Kijapani kwa sababu Kiingereza yangu ni wa uhakika.] 58 00:03:39,830 --> 00:03:45,380 [Nimeitia ujumbe kutoka kwa mji wa Gifu, Japan.] 59 00:03:45,380 --> 00:03:49,820 [Naweza kuwa mwanafunzi kwa mara ya kwanza katika miaka 20, kama inaweza kuonekana.] 60 00:03:49,820 --> 00:03:54,640 [Ninamshukuru sana kwa Chuo Kikuu cha Harvard ambaye alinipa nafasi hii na edX.] 61 00:03:54,640 --> 00:04:01,510 [Golf ni gitaa na kitu favorite mbio.] [Kicheko] 62 00:04:01,510 --> 00:04:05,750 [♪ ♪] 63 00:04:05,750 --> 00:04:10,790 [Kwa nini unafikiri mimi alikuwa anajaribu kuhudhuria cs50x.] 64 00:04:10,790 --> 00:04:14,990 [Chuo Kikuu cha Harvard, ni shauku yangu.] 65 00:04:14,990 --> 00:04:19,740 [Hasa kama mimi ni uwepo mbali aliishi katika Japan.] 66 00:04:19,740 --> 00:04:26,680 [Mimi alitaka kujaribu mara moja na ufahamu wa kuwepo kwa edX vile wakati.] 67 00:04:26,680 --> 00:04:32,500 [Je, unafikiri hivyo huna kuhusiana na umri wa kujifunza I.] 68 00:04:32,500 --> 00:04:38,350 [Cs50 ni hamu yangu. Jina langu ni Kazu, na hii ni cs50.] 69 00:04:38,350 --> 00:04:43,090 [♪ ♪] [applause na cheering] 70 00:04:43,090 --> 00:04:49,220 Mwingine favorite ya yetu ilikuwa hii kuwasilisha hapa kutoka kwa mtu. 71 00:04:51,070 --> 00:04:55,380 [♪ ♪] [Malan] Google ni kama wewe ni unfamiliar na meme hii. 72 00:04:55,380 --> 00:05:01,480 >> Na kisha mwisho, wanandoa wengine kwamba got posted kwamba labda kushinda tuzo adorable. 73 00:05:01,480 --> 00:05:06,820 [Wanafunzi] Aww! >> [Malan] Sisi itabidi kusikiliza. Hii ni mfupi, hivyo kusikiliza kwa makini. 74 00:05:08,580 --> 00:05:11,150 [Kike msemaji] Nini jina lako? >> Louie. 75 00:05:11,150 --> 00:05:16,120 [Kike msemaji] Nini hii? >> [Giggles] CS50. [Kicheko] 76 00:05:16,120 --> 00:05:19,510 [Malan] hakuwa mbili inachukua, ingawa. 77 00:05:19,510 --> 00:05:22,240 Hapa sisi kwenda, mwisho. 78 00:05:23,030 --> 00:05:26,980 Jina langu ni Louie, na hii ni CS50. 79 00:05:26,980 --> 00:05:30,250 [Kicheko] Hii basi ni CS50x. 80 00:05:30,250 --> 00:05:33,230 Asante kwa wale wote wa wewe wakati kufuatia pamoja nyumbani 81 00:05:33,230 --> 00:05:35,620 ambao wamekuwa wanashiriki hivi sasa. 82 00:05:35,620 --> 00:05:39,510 Leo, sisi kuhitimisha mjadala wetu wa miundo data, 83 00:05:39,510 --> 00:05:41,160 angalau baadhi ya msingi kabisa, 84 00:05:41,160 --> 00:05:44,760 na kisha sisi kuendelea mazungumzo yetu kuhusu HTML na mtandao programu. 85 00:05:44,760 --> 00:05:48,520 Hakika, tumekuwa alitumia iliyopita baadhi ya wiki saba kuangalia misingi ya programu - 86 00:05:48,520 --> 00:05:50,450 algorithms, miundo data, na kama - 87 00:05:50,450 --> 00:05:53,050 na C, kama unaweza kuwa na uzoefu hivi sasa, 88 00:05:53,050 --> 00:05:57,060 ni lazima si zaidi kupatikana ya lugha 89 00:05:57,060 --> 00:05:59,090 na ambayo kwa kutekeleza baadhi ya mawazo hayo. 90 00:05:59,090 --> 00:06:01,880 Na hivyo kuanzia wiki hii na wiki ijayo na kisha zifuatazo, 91 00:06:01,880 --> 00:06:07,110 tutaweza hatimaye kuwa na uwezo wa mpito kutoka C, ambayo ni ujumla inayojulikana kama lugha ya uungwana ngazi ya chini, 92 00:06:07,110 --> 00:06:11,190 mambo ngazi za juu, kati yao PHP, JavaScript, na kama, 93 00:06:11,190 --> 00:06:14,850 ambayo tutaweza kuona kuteka juu ya masomo sawa kwamba tumejifunza katika wiki chache zilizopita, 94 00:06:14,850 --> 00:06:19,430 lakini utapata kwamba kutangaza vitu kama arrays na meza hash na kutafuta na kuchagua 95 00:06:19,430 --> 00:06:23,370 kuwa rahisi sana kwa sababu lugha wenyewe tutaweza kuanza kutumia 96 00:06:23,370 --> 00:06:25,290 itakuwa na nguvu zaidi. 97 00:06:25,290 --> 00:06:27,410 Lakini kwanza, maombi ya miti. 98 00:06:27,410 --> 00:06:30,240 Ni kawaida sana siku hizi kwa haja ya compress habari. 99 00:06:30,240 --> 00:06:34,770 Katika mazingira gani ingekuwa unataka compress baadhi ya aina ya digital habari? 100 00:06:37,190 --> 00:06:39,670 >> Yeah. >> [Mwanafunzi] Wakati unahitaji kutuma zaidi ya Mtandao. 101 00:06:39,670 --> 00:06:41,450 Yeah, wakati unataka kutuma kitu juu ya mtandao. 102 00:06:41,450 --> 00:06:44,950 Kama unataka kupakua faili kubwa, ni bora kama mtu juu ya nyingine ya mwisho 103 00:06:44,950 --> 00:06:48,760 ina USITUMIE kwamba faili kwa kutumia muundo zip au kitu kama hicho 104 00:06:48,760 --> 00:06:53,760 hivyo kwamba wewe ni kutuma bits wachache kuliko ili vinginevyo kuambukizwa. 105 00:06:53,760 --> 00:06:55,500 Hivyo ni jinsi gani compress habari? 106 00:06:55,500 --> 00:07:00,540 Ni wote majipu chini kutumia bits wachache kuliko wanatakiwa na default. 107 00:07:00,540 --> 00:07:03,220 Lakini hii ni aina ya kitu curious kwa sababu kufikiri nyuma kwa wiki 0 na 1 108 00:07:03,220 --> 00:07:07,370 wakati sisi aliyesema kuhusu ASCII na binary na kuongelea ASCII hasa 109 00:07:07,370 --> 00:07:10,690 kama kutumia bits 8 kuwakilisha wa alfabeti 110 00:07:10,690 --> 00:07:16,120 hivyo kwamba barua ni kuwakilishwa na 65, Herufi za chini ni idadi 97, 111 00:07:16,120 --> 00:07:21,210 na hata hivyo wewe kuwakilisha 65 au 97, unatumia bits 7 au 8. 112 00:07:21,210 --> 00:07:24,120 Lakini catch ni kwamba kuna baadhi ya barua katika alfabeti ya Kiingereza 113 00:07:24,120 --> 00:07:26,230 ambayo si kama maarufu kama watu wengine. 114 00:07:26,230 --> 00:07:31,600 Z si maarufu kwamba wote, Q si maarufu kwamba wote, lakini na E ni super maarufu. 115 00:07:31,600 --> 00:07:37,280 Na bado kwa wote wa barua hizi, kwa default dunia anatumia idadi sawa ya bits, 8 tu. 116 00:07:37,280 --> 00:07:42,690 Hivyo ingekuwa si hivyo wamekuwa nadhifu kama badala ya kutumia bits 8 kwa kila barua, 117 00:07:42,690 --> 00:07:47,440 hata wengi infrequently kutumika kama Q na Z, 118 00:07:47,440 --> 00:07:51,910 nini kama sisi kutumika bits machache kwa ajili ya E na na S na barua maarufu 119 00:07:51,910 --> 00:07:55,000 na kutumika zaidi kwa bits barua chini maarufu, 120 00:07:55,000 --> 00:07:57,770 wazo kuwa optimize wacha kwa kesi ya kawaida, 121 00:07:57,770 --> 00:08:01,160 ambayo ni mandhari katika sayansi ya kompyuta ya kujaribu optimize nini kitatokea zaidi 122 00:08:01,160 --> 00:08:05,310 na kutumia zaidi kidogo wakati, kidogo nafasi zaidi kwenye mambo ambayo, yeah, inaweza kutokea 123 00:08:05,310 --> 00:08:07,680 lakini si lazima kama mara kwa mara. 124 00:08:07,680 --> 00:08:09,330 Basi hebu chukua mfano. 125 00:08:09,330 --> 00:08:12,610 >> Tuseme kwamba tunataka encode taarifa hizo kwa haki kwa ufanisi. 126 00:08:12,610 --> 00:08:15,090 Unaweza kuwa mzima kujua kitu kidogo kuhusu Morse kificho, 127 00:08:15,090 --> 00:08:17,450 na ni tabia mbaya wewe hakujua code halisi, 128 00:08:17,450 --> 00:08:21,750 lakini unaweza kukumbuka kwamba ni angalau mfululizo huu wa dots na dashes. 129 00:08:21,750 --> 00:08:26,640 Hii ni coding uungwana ufanisi, na taarifa kwamba barua maarufu - kwa mfano, E - 130 00:08:26,640 --> 00:08:28,980 anatumia mfupi beeps. 131 00:08:28,980 --> 00:08:31,740 Morse code ni wote kuhusu beep beep-beep--beep beep beep--na kufanya tani 132 00:08:31,740 --> 00:08:34,799 aidha kwa muda mfupi au muda mrefu. 133 00:08:34,799 --> 00:08:40,330 E, kama ulionyehsa kwa dot, ni super short beep, tu beep, na kwamba itakuwa kuwakilisha E. 134 00:08:40,330 --> 00:08:43,960 Kwa kulinganisha, T itakuwa beep tena, kama beep [prolongs sauti], 135 00:08:43,960 --> 00:08:45,710 na ambacho kitawakilisha T. 136 00:08:45,710 --> 00:08:48,840 Lakini kwamba bado pretty mfupi kwa sababu, kwa kulinganisha, kama ukiangalia Z, 137 00:08:48,840 --> 00:08:52,690 kueleza Z ungependa kwenda beep, beep [tena sauti], beep, beep [mfupi sauti]. 138 00:08:52,690 --> 00:08:55,360 Hivyo ni tena kwa sababu ni chini ya kawaida. 139 00:08:55,360 --> 00:08:58,150 Lakini gotcha hapa ni kwamba Morse code ni kidogo kiujanja 140 00:08:58,150 --> 00:09:00,610 katika kwamba si mara moja decodable. 141 00:09:00,610 --> 00:09:07,350 Kwa mfano, tuseme kwamba wewe kusikia juu ya baadhi ya mwisho wa beep waya [short], beep [mrefu]. 142 00:09:07,350 --> 00:09:12,480 Ni ujumbe gani mimi tu kupokea? dot na dash. Gani kwamba kuwakilisha? 143 00:09:12,480 --> 00:09:15,330 [Mwanafunzi] A. >> [Malan] Labda. 144 00:09:15,330 --> 00:09:18,270 Pia inaweza kuwa E ikifuatiwa na T. 145 00:09:18,270 --> 00:09:23,390 Kwa maneno mengine, Morse code, ingawa leverages kanuni hii ya optimizing kesi kona, 146 00:09:23,390 --> 00:09:26,250 haina kukopesha yenyewe decodability haraka. 147 00:09:26,250 --> 00:09:29,850 Hiyo ni, binadamu ambaye ni kusikia au kupokea dots hizi na dashes 148 00:09:29,850 --> 00:09:34,540 ina namna fulani takwimu nje ambapo mapumziko ni kati ya herufi, 149 00:09:34,540 --> 00:09:39,660 kwa sababu kama wewe sijui wapi wale mapumziko ni, unaweza kuwachanganya kwa ET au kinyume chake. 150 00:09:39,660 --> 00:09:43,880 >> Basi nini ili unaweza kufanya? Katika code Morse unaweza tu pause kati ya kila moja ya barua. 151 00:09:43,880 --> 00:09:47,660 Lakini pausing ni aina ya kukabiliana na hatua wote wa kasi ya mambo juu. 152 00:09:47,660 --> 00:09:52,880 Basi nini kama badala ya sisi kuja na code ambapo hapakuwa na hali hii mbaya 153 00:09:52,880 --> 00:09:56,570 ambapo E ni kiambishi awali, kwa mfano, ya - 154 00:09:56,570 --> 00:10:00,020 kwa maneno mengine, kama tunaweza kuhakikisha kwamba mifumo ni bado mfupi kwa barua maarufu 155 00:10:00,020 --> 00:10:04,850 muda mrefu kwa barua chini maarufu, lakini hakuna machafuko inawezekana? 156 00:10:04,850 --> 00:10:08,930 mtu mmoja kwa jina Huffman miaka iliyopita zuliwa mpango huu huitwa Huffman coding 157 00:10:08,930 --> 00:10:12,390 kwamba kweli leverages moja ya miundo data tumekuwa alitumia muda kidogo kuzungumza kuhusu 158 00:10:12,390 --> 00:10:16,560 wiki hii iliyopita, kwamba miti, binary miti hasa - 159 00:10:16,560 --> 00:10:19,710 mti binary maana ya kuwa hakuna zaidi ya watoto 2. 160 00:10:19,710 --> 00:10:22,720 Ina labda mtoto wa kushoto, labda mtoto wa kulia, na hiyo ni yake. 161 00:10:22,720 --> 00:10:26,510 Hivyo kudhani tu kwa ajili ya majadiliano ya kwamba mtu anataka kupeleka ujumbe 162 00:10:26,510 --> 00:10:31,270 kwamba inaonekana kama hii. Ni kamili nonsense lakini ni linajumuisha Kama, Bs, Cs, Ds, na Es Salaam. 163 00:10:31,270 --> 00:10:34,890 Na kama kweli kuhesabu juu wote wa Kama, Bs, Cs, Ds, na Es 164 00:10:34,890 --> 00:10:36,870 na kisha kugawanya na jumla ya idadi ya herufi, 165 00:10:36,870 --> 00:10:42,710 hii chati kidogo hapa anasema kwamba 45% ya barua ni Salaam, 20% ni Kama, 166 00:10:42,710 --> 00:10:45,010 10% Bs, na kadhalika. 167 00:10:45,010 --> 00:10:47,330 Hivyo kwa maneno mengine, kudhani kuwa string alinukuliwa huko 168 00:10:47,330 --> 00:10:49,080 ni baadhi tu ujumbe kwamba unataka kutuma. 169 00:10:49,080 --> 00:10:52,180 Hutokea kwa kuwa nonsense hivyo tu tunaweza kutumia kama barua chache iwezekanavyo, 170 00:10:52,180 --> 00:10:55,220 lakini ni kweli kwamba kesi E inabakia maarufu zaidi, 171 00:10:55,220 --> 00:11:01,450 A na B na C ni angalau maarufu, angalau ya barua hizi 5 za alfabeti. 172 00:11:01,450 --> 00:11:04,040 Hivyo ni jinsi gani tunaweza kwenda kuhusu kuja na encoding, 173 00:11:04,040 --> 00:11:08,430 encoding binary, mfano wa sekunde 0 na 1s kwa kila moja ya barua hizi 174 00:11:08,430 --> 00:11:14,820 katika namna kwamba E ni mfano mfupi na labda B na C ni kidogo tena mwelekeo, 175 00:11:14,820 --> 00:11:19,270 tena, wazo kuwa kuwa tunataka kutumia wachache bits zaidi ya muda 176 00:11:19,270 --> 00:11:21,790 na zaidi bits tu mara moja kwa wakati. 177 00:11:21,790 --> 00:11:26,070 Kulingana na Huffman coding, unaweza kuunda msitu wa miti. 178 00:11:26,070 --> 00:11:31,190 Kuna aina ya line hadithi hapa ambao unahusisha miti na pia mchakato wa kujenga yao juu. 179 00:11:31,190 --> 00:11:32,420 Hebu kuanza. 180 00:11:32,420 --> 00:11:36,140 >> Napendekeza kwamba kuanza kwa msitu huu, ili kuzungumza, ya miti 5, 181 00:11:36,140 --> 00:11:38,260 ambayo kila mmoja ni mti pretty kijinga. 182 00:11:38,260 --> 00:11:42,800 mti linajumuisha nodi moja tu, kama kuwakilishwa hapa na mduara. 183 00:11:42,800 --> 00:11:45,310 Basi kila mmoja wa mambo haya yanaweza kuwa struct C 184 00:11:45,310 --> 00:11:50,200 na ndani ya struct C inaweza kuwa kuelea anayewakilisha kuhesabu frequency 185 00:11:50,200 --> 00:11:52,510 na kisha labda Char anayewakilisha barua. 186 00:11:52,510 --> 00:11:56,470 Hivyo kufikiri ya nodi hiyo kama struct tu umri wowote C lakini, kwa sasa, ngazi za juu. 187 00:11:56,470 --> 00:12:01,230 Hii ni msitu wa miti 5, kila mmoja ambaye tu nodi moja. 188 00:12:01,230 --> 00:12:06,830 Nini Huffman mapendekezo ni kwamba sisi kuanza kuchanganya miti wale 189 00:12:06,830 --> 00:12:11,140 kwamba kuwa na makosa madogo ndani ya miti frequency kubwa kidogo 190 00:12:11,140 --> 00:12:13,490 kwa kuunganisha yao na node mpya mizizi. 191 00:12:13,490 --> 00:12:17,560 Hivyo kati ya barua hapa, taarifa kwamba kwa urahisi nimekuwa sorted yao kutoka kushoto kwenda kulia, 192 00:12:17,560 --> 00:12:21,420 ingawa si kwamba madhubuti muhimu, na taarifa kwamba nodes ndogo 193 00:12:21,420 --> 00:12:23,930 sasa ni 10% na 10%. 194 00:12:23,930 --> 00:12:28,940 Hivyo Huffman mapendekezo kwamba sisi kuunganisha wale 2 nodes ndogo ndani ya mti mpya 195 00:12:28,940 --> 00:12:34,450 kwa kuanzisha mpya mzazi nodi na kisha kutoa kuwa mzazi wa mtoto wa kushoto na mtoto wa kulia 196 00:12:34,450 --> 00:12:37,720 ambapo B ni kiholela kushoto na C ni kiholela haki. 197 00:12:37,720 --> 00:12:41,590 Na kisha Huffman inapendekezwa kwamba hebu sasa tu kufikiri ya mtoto wa kushoto 198 00:12:41,590 --> 00:12:44,790 katika moja ya miti hii daima kama kuwa na kuwakilishwa na 0 199 00:12:44,790 --> 00:12:47,890 na mtoto haki daima kama kuwa na kuwakilishwa na idadi 1. 200 00:12:47,890 --> 00:12:50,680 >> Haijalishi kama wewe flip yao ya muda mrefu kama wewe ni thabiti. 201 00:12:50,680 --> 00:12:54,650 Hivyo sasa tuna nne miti katika misitu hii. 202 00:12:54,650 --> 00:12:58,050 Na mimi kusema nne kwa sababu sasa mti upande wa kushoto - 203 00:12:58,050 --> 00:13:00,570 na si sana mti kwa maana kwamba kukua kwa njia hii, 204 00:13:00,570 --> 00:13:05,170 ni zaidi kama mti wa familia ambapo sasa 0.2 ni aina ya mzazi wa watoto wawili - 205 00:13:05,170 --> 00:13:07,930 taarifa kwamba katika mzazi kwamba tumepata 0.2. 206 00:13:07,930 --> 00:13:13,370 Tumeongeza makosa frequency ya watoto wawili na kupewa nodi mpya jumla. 207 00:13:13,370 --> 00:13:15,310 Hivyo sasa sisi tu kurudia utaratibu huu. 208 00:13:15,310 --> 00:13:19,490 Kupata mbili nodes ndogo na kisha kujiunga nao katika mti mpya 209 00:13:19,490 --> 00:13:21,380 na kisha kurudia utaratibu zaidi. 210 00:13:21,380 --> 00:13:26,390 Hivi sasa tuna wagombea wachache, 20%, 15%, na 20%. 211 00:13:26,390 --> 00:13:29,780 Katika kesi hiyo, tuna kuvunja tie. Tunaweza kufanya hivyo kiholela. 212 00:13:29,780 --> 00:13:31,540 Tunapaswa tu kufanya hivyo mara kwa mara. 213 00:13:31,540 --> 00:13:33,760 Katika kesi hiyo, mimi itabidi kiholela kwenda kwa moja upande wa kushoto, 214 00:13:33,760 --> 00:13:39,880 na mimi sasa kuunganisha% 20% 15 na kunipa mzazi mpya iitwayo 35%, 215 00:13:39,880 --> 00:13:46,310 ambao kushoto mtoto ni 0, ambaye ni haki ya mtoto ni 1, na sasa tuna tatu tu miti katika msitu. 216 00:13:46,310 --> 00:13:47,960 Unaweza labda kuona ambapo hii ni kwenda. 217 00:13:47,960 --> 00:13:51,150 Kama sisi kurudia mara kadhaa zaidi, sisi itawabidi moja tu kubwa mti, 218 00:13:51,150 --> 00:13:53,900 yote ambaye edges ni lebo na sekunde 0 na 1s. 219 00:13:53,900 --> 00:13:55,710 Hebu kufanya hivyo tena. 220 00:13:55,710 --> 00:14:02,600 35% ni shina la mti. 20% na 45%, hivyo sisi ni kwenda kuunganisha% 35 na 20%. 221 00:14:02,600 --> 00:14:05,610 Sasa tuna mti huu hapa. Sisi kuongeza wale pamoja, tuna 55%. 222 00:14:05,610 --> 00:14:07,910 Sasa kuna wawili tu miti katika msitu. 223 00:14:07,910 --> 00:14:11,900 Sisi kufanya hili moja ya mwisho ya muda, na hopefully mathematically frekvenser wote kuongeza up 224 00:14:11,900 --> 00:14:15,570 kwa sababu wanapaswa tangu sisi computed yao kutoka kupata-go na kuongeza hadi 100%. 225 00:14:15,570 --> 00:14:17,960 Na sasa tuna mti mmoja. 226 00:14:17,960 --> 00:14:20,580 Hivyo hii ni Huffman coding mti. 227 00:14:20,580 --> 00:14:24,400 Ni aina ya alichukua muda kupata kuna maneno, lakini ukweli ni pamoja na kwa kitanzi 228 00:14:24,400 --> 00:14:27,620 au na kazi ya kujirudia, unaweza kujenga jambo hili up pretty kufunga. 229 00:14:27,620 --> 00:14:32,440 Hivyo sasa sisi moja mpya wa nodi, na wote wa nodi hiyo ndani wamekuwa malloc'd, 230 00:14:32,440 --> 00:14:34,690 labda, njiani. 231 00:14:34,690 --> 00:14:38,650 Hivyo sasa wakati juu ya mti huu tuna 100%, lakini sasa ilani tuna njia 232 00:14:38,650 --> 00:14:43,780 kutoka hii mpya kubwa-kubwa-kubwa-grandparent yote ya kubwa-kubwa-kubwa-wajukuu 233 00:14:43,780 --> 00:14:45,930 njia yote chini, na yote ya majani. 234 00:14:45,930 --> 00:14:52,840 >> Nini sisi ni kwenda kufanya sasa ni kupendekeza kwamba ili kuwakilisha E barua, 235 00:14:52,840 --> 00:14:55,670 sisi tu kutumia namba 1. Kwa nini? 236 00:14:55,670 --> 00:15:01,000 Kwa sababu kama sisi traverse mti huu kutoka mizizi ya mwisho chini ya jani inayojulikana kama E, 237 00:15:01,000 --> 00:15:06,050 sisi kufuata moja tu makali, makali haki, na kwamba bila shaka katika labeled 1 ya juu kulia. 238 00:15:06,050 --> 00:15:11,550 Hivyo Kidokezo hapa kwa Huffman ilikuwa kwamba encoding E katika binary itakuwa tu kuwa 1. 239 00:15:11,550 --> 00:15:14,490 Na kwamba ni pretty damn ufanisi. Je, si kweli kupata yoyote ndogo kuliko hiyo. 240 00:15:14,490 --> 00:15:18,350 Kwa kulinganisha, ni kwenda kuwa kuwakilishwa, kama wewe kufuata mantiki, 241 00:15:18,350 --> 00:15:21,610 kwa nini muundo wa bits badala yake? 01. 242 00:15:21,610 --> 00:15:25,500 Hivyo kupata, sisi kuanza katika mizizi na sisi kwenda kushoto na kisha sisi kwenda kulia, 243 00:15:25,500 --> 00:15:28,580 ambayo ina maana sisi ikifuatiwa 0 na kisha 1. 244 00:15:28,580 --> 00:15:32,810 Hivyo tutakuwa kuwakilisha barua na mfano 0 na 1. 245 00:15:32,810 --> 00:15:36,010 Na sasa taarifa tayari tuna mali ya decodability haraka 246 00:15:36,010 --> 00:15:38,090 kwamba hatukuwa na katika code Morse. 247 00:15:38,090 --> 00:15:42,840 Hata ingawa wote wa mifumo haya ni pretty mfupi - E ni 1 kidogo, ni 2 bits - 248 00:15:42,840 --> 00:15:45,080 taarifa kwamba wao hawawezi kuwa na kuchanganyikiwa moja au nyingine, 249 00:15:45,080 --> 00:15:54,870 kwa sababu kama wewe angalia 1 ni got kuwa E, kama kuona 0 kisha 1 ni wazi got kuwa A. 250 00:15:54,870 --> 00:15:58,410 Vile vile, nini D? 001. 251 00:15:58,410 --> 00:16:01,440 Nini ni C? 0001. 252 00:16:01,440 --> 00:16:05,320 Na ni nini B? 0000. 253 00:16:05,320 --> 00:16:09,550 Na tena, kwa sababu kila barua sisi huduma ya juu ni katika majani 254 00:16:09,550 --> 00:16:13,890 na hakuna hata mmoja wao ni aina ya kati katika njia kutoka mizizi na majani, 255 00:16:13,890 --> 00:16:18,760 hakuna hatari ya conflating 2 barua 'encodings tofauti 256 00:16:18,760 --> 00:16:22,300 kwa sababu wote wa mifumo haya ni kidogo deterministic. 257 00:16:22,300 --> 00:16:25,280 0000 daima kuwa B. 258 00:16:25,280 --> 00:16:29,480 Hakuna kipingili mahali fulani katika kati ya kwamba unaweza kuwavurugia barua moja kwa nyingine. 259 00:16:29,480 --> 00:16:31,150 Basi nini maana hapa? 260 00:16:31,150 --> 00:16:35,080 >> barua maarufu - katika kesi hii E - imenipatia encoding mfupi, 261 00:16:35,080 --> 00:16:37,430 imenipatia ijayo mfupi encoding, 262 00:16:37,430 --> 00:16:41,390 A na B na C, ambayo sisi tayari alijua kutoka aina kupata-go walikuwa maarufu angalau 263 00:16:41,390 --> 00:16:45,390 mara kwa mara 10% kila, wao wamezipata encoding mrefu. 264 00:16:45,390 --> 00:16:49,410 Na hivyo nini maana ya hii sasa ni kwamba kama unataka kutuma ujumbe hiyo Komprimerade 265 00:16:49,410 --> 00:16:51,950 juu ya internet au katika barua pepe au kama, 266 00:16:51,950 --> 00:16:56,730 badala ya kutumia ASCII standard, unaweza kutuma ujumbe Huffman coded 267 00:16:56,730 --> 00:17:01,720 ambapo kama unataka kutuma E barua, kutuma kidogo tu moja. 268 00:17:01,720 --> 00:17:05,680 Kama unataka kutuma, kutuma bits 2, 01, badala ya kupeleka bits 8 269 00:17:05,680 --> 00:17:10,190 ikifuatiwa na bits mwingine 8 ikifuatiwa na bits mwingine 8 na kadhalika. 270 00:17:10,190 --> 00:17:11,940 Lakini kuna gotcha hapa. 271 00:17:11,940 --> 00:17:17,079 Ni si ya kutosha tu kujenga mti huu na kisha kuanza kutuma kutoka Alice kwa Bob 272 00:17:17,079 --> 00:17:20,010 mfupi kidogo mfano, kamba kutoka ASCII, 273 00:17:20,010 --> 00:17:23,140 kwa sababu Alice pia ina taarifa Bob ya kile 274 00:17:23,140 --> 00:17:26,880 kama Bob ni kwenda kuwa na uwezo wa kusoma ujumbe wake USITUMIE? 275 00:17:26,880 --> 00:17:30,770 [Inaudible mwanafunzi majibu] >> gani hiyo? 276 00:17:30,770 --> 00:17:32,310 [Inaudible mwanafunzi majibu] >> Of nini mti ni. 277 00:17:32,310 --> 00:17:35,160 Au hata zaidi hasa, nini wale encodings ni, 278 00:17:35,160 --> 00:17:39,010 hasa tangu wakati wa hadithi hii sisi alitoa wito hukumu kwa wakati mmoja. 279 00:17:39,010 --> 00:17:43,640 Kumbuka kwamba tulikuwa na pick kiholela kati ya pingili 2 tofauti 20%? 280 00:17:43,640 --> 00:17:49,800 Hivyo si kesi hiyo Bob, mpokeaji, unaweza tu upya mti juu yake mwenyewe 281 00:17:49,800 --> 00:17:53,390 kwa sababu labda yeye itakuwa kujenga mti milele hivyo tofauti kidogo kutoka Alice. 282 00:17:53,390 --> 00:17:56,670 Aidha, Bob hana hata kujua nini ujumbe halisi ni 283 00:17:56,670 --> 00:18:00,770 kwa sababu neno tu Alice ni kutuma yake, bila shaka, ni ujumbe Komprimerade. 284 00:18:00,770 --> 00:18:05,900 >> Hivyo samaki na compression kama hii ni kwamba, ndiyo, Alice inaweza kuokoa mengi yote ya bits 285 00:18:05,900 --> 00:18:09,900 kwa kutuma 1 kwa Barua na 01 kwa na kadhalika, 286 00:18:09,900 --> 00:18:15,180 lakini yeye pia ana kuwajulisha Bob nini ramani ni kati ya herufi na bits 287 00:18:15,180 --> 00:18:19,620 sababu hawawezi wazi wanategemea tu ASCII tena kama sisi siyo kutumia ASCII. 288 00:18:19,620 --> 00:18:22,200 Hivyo anaweza ama kumpeleka mti namna fulani - 289 00:18:22,200 --> 00:18:26,600 kuandika ni chini, kuhifadhi data kama binary au kitu kama hicho - 290 00:18:26,600 --> 00:18:30,280 au tu kutuma naye kidogo kudanganya karatasi, faili Excel, ambayo inaonyesha upangaji. 291 00:18:30,280 --> 00:18:36,480 Hivyo ufanisi wa compression kweli akubali kwamba ujumbe kwamba wewe ni kutuma 292 00:18:36,480 --> 00:18:40,230 ni pretty kubwa, angalau ukubwa wa kati, 293 00:18:40,230 --> 00:18:42,180 kwa sababu kama wewe ni kutuma ujumbe mfupi wa super, 294 00:18:42,180 --> 00:18:45,390 kama wewe tu unataka kutuma ujumbe BAD, ambayo hufanyika kuwa neno tunaweza Spell hapa, 295 00:18:45,390 --> 00:18:49,550 B-A-D, pengine wewe kwenda kutumia bits wachache, 296 00:18:49,550 --> 00:18:53,130 lakini samaki ni kama wewe pia kuwa na kuwajulisha kile Bob mti ni 297 00:18:53,130 --> 00:18:57,530 au nini wale encodings ni, wewe ni kwenda pengine outweigh yote ya akiba 298 00:18:57,530 --> 00:19:00,110 ya kuwa na mambo USITUMIE kwa kuanzia. 299 00:19:00,110 --> 00:19:02,210 Hivyo ni kweli anaweza kuwa kesi kwamba kama wewe jaribu compressing 300 00:19:02,210 --> 00:19:05,330 hata na kitu kama format zip file au unaweza kuwa ukoo na - 301 00:19:05,330 --> 00:19:07,780 pretty ndogo files, hata tupu files - 302 00:19:07,780 --> 00:19:10,930 wakati mwingine wale files ili kupata kubwa na si ndogo. 303 00:19:10,930 --> 00:19:14,320 Lakini realistically, ambayo hufanyika tu kwa ukubwa ndogo ya SVG, 304 00:19:14,320 --> 00:19:16,920 hivyo si kwenda kufanya faili gigabyte kuwa 2 gigabytes; 305 00:19:16,920 --> 00:19:19,480 sisi ni kweli kuzungumza ka au tu kilobytes wanandoa. 306 00:19:19,480 --> 00:19:22,330 >> Baadhi ya mipango kama zip ni smart kutosha kutambua kwamba, 307 00:19:22,330 --> 00:19:24,590 "Wewe ni kwenda kutumia bits zaidi compressing hii." 308 00:19:24,590 --> 00:19:27,460 "Basi mimi si bother compressing ni kwa ajili yenu wakati wote." 309 00:19:27,460 --> 00:19:30,160 Hivyo hii ni moja ya njia ya basi compressing Nakala format. 310 00:19:30,160 --> 00:19:32,300 Tunaweza kutekeleza kitu kama hiki katika C. 311 00:19:32,300 --> 00:19:35,370 Kwa mfano, hapa ni jinsi sisi wanaweza kuwakilisha nodi katika mti huu 312 00:19:35,370 --> 00:19:39,320 ambapo tuna Char kwa ishara, thamani floating kwa frequency, 313 00:19:39,320 --> 00:19:42,250 na kama tumeona na miundo yetu nyingine data, kuyatumia 2, 314 00:19:42,250 --> 00:19:47,080 1 kwa mtoto wa kushoto, 1 kwa haki, ama ya ambayo inaweza kuwa null, 315 00:19:47,080 --> 00:19:50,850 lakini kama si, lina maana ya mtoto wa kushoto na mtoto wa kulia. 316 00:19:50,850 --> 00:19:55,130 Hivyo hii ni kisha Huffman coding, na ni njia moja ambayo unaweza kwenda kuhusu compressing habari, 317 00:19:55,130 --> 00:19:57,880 na hakika moja ya wengi rahisi kutekeleza 318 00:19:57,880 --> 00:20:00,830 katika mazingira ya, wanasema, miundo ya wiki iliyopita data, 319 00:20:00,830 --> 00:20:03,250 ingawa hata kisasa zaidi algorithms zipo 320 00:20:03,250 --> 00:20:08,220 kwamba anaweza kufanya mabadiliko hata kisasa zaidi wa data zako. 321 00:20:08,220 --> 00:20:11,640 Maswali yoyote juu ya basi miti, miti binary, au compression ya maandishi? 322 00:20:11,640 --> 00:20:15,590 [Mwanafunzi] Je, kuna utata fulani, kama ikiwa [inaudible] iligawanyika katika 01, 323 00:20:15,590 --> 00:20:19,160 kisha 011 itakuwa mafumbo, haki? 324 00:20:19,160 --> 00:20:22,730 [Inaudible] >> Bora swali. Utata. 325 00:20:22,730 --> 00:20:25,940 Hebu muhtasari kwa akimaanisha hii picha hapa. 326 00:20:25,940 --> 00:20:29,650 Kwa sababu wewe ni wahusika compressing, uwakilishi wa, 327 00:20:29,650 --> 00:20:32,850 kwa ufafanuzi wa algorithm hii daima kubaki majani, 328 00:20:32,850 --> 00:20:41,870 hutaweza ajali kutumia mfano huo wa bits kwa kiambishi awali ya barua nyingi. 329 00:20:41,870 --> 00:20:46,740 Hivyo kwa maneno mengine, wewe ni wasiwasi kuhusu, inaonekana kama, utata kutokana 330 00:20:46,740 --> 00:20:51,580 ambapo 001 inaweza kuwa mwanzo wa B au mwanzo wa C au kitu kama hicho. 331 00:20:51,580 --> 00:20:56,780 Lakini hiyo inaweza kuwa kesi kwa sababu taarifa kwamba wote wa herufi za alfabeti tuko usimbaji 332 00:20:56,780 --> 00:20:58,290 ni katika majani. 333 00:20:58,290 --> 00:21:01,910 >> ambiguity unaweza tu kujitokeza, kama katika kesi ya code Morse, 334 00:21:01,910 --> 00:21:06,770 ikiwa, kwa mfano, C alikuwa mahali fulani njiani kutoka mizizi kwa B. 335 00:21:06,770 --> 00:21:12,290 [Mwanafunzi] Haki. Hivyo katika kesi hiyo, wanasema ina majani 2. >> Sema ina - Sema kwamba tena. 336 00:21:12,290 --> 00:21:18,760 [Mwanafunzi] Sema ina majani 2, F na G, na kisha G - >> Sawa. Lakini hawawezi. 337 00:21:18,760 --> 00:21:23,230 yenyewe hakuweza kuwa majani F na G kwa sababu barua hizo F na G 338 00:21:23,230 --> 00:21:27,560 ingekuwa wenyewe kuwa majani fulani ya kushoto ya B au haki ya E. 339 00:21:27,560 --> 00:21:28,900 Hivyo kwa ufafanuzi, ni lazima kuwa na majani. 340 00:21:28,900 --> 00:21:32,940 Vinginevyo, uko sahihi kabisa, tumekuwa si kutatuliwa tatizo kwamba Morse code nyuso. 341 00:21:32,940 --> 00:21:38,150 Nzuri swali. Maswali mengine? Wote haki. 342 00:21:38,150 --> 00:21:42,050 Dhana hii ya bits, zinageuka tumekuwa alikuwa na nguvu ya wote pamoja kwamba tumekuwa si kweli kutumika 343 00:21:42,050 --> 00:21:44,200 wakati alikuja kufanyia haya sekunde 0 na 1s. 344 00:21:44,200 --> 00:21:46,600 Tuliuliza kuhusu hili kwenye moja ya seti ya mwanzo tatizo: 345 00:21:46,600 --> 00:21:52,340 yaani, ni jinsi gani wewe kwenda juu ya kuwabadili uppercase kwa Herufi za chini au kinyume chake? 346 00:21:52,340 --> 00:21:55,460 Au, zaidi concretely, mmoja wa wale psets kwanza aliuliza 347 00:21:55,460 --> 00:22:01,090 wangapi bits je kweli kuwa flip ili kubadili kwa Herufi za chini au kinyume chake? 348 00:22:01,090 --> 00:22:05,580 Hapa ni ukumbusho ya haraka ya nini 65 na 97 katika kuangalia kama binary. 349 00:22:05,580 --> 00:22:08,060 Na hata kama swali kwamba ina aina ya Faded katika kumbukumbu yako, 350 00:22:08,060 --> 00:22:11,290 unaweza kuona tena hapa kwamba wangapi bits haja ya kuwa na flipped 351 00:22:11,290 --> 00:22:15,810 kubadili mtaji wa Herufi za chini? Moja tu. 352 00:22:15,810 --> 00:22:19,650 >> Wao tu tofauti katika eneo moja, kidogo ya tatu kutoka kushoto. 353 00:22:19,650 --> 00:22:24,240 Ambapo ina 010, kidogo ina 011. 354 00:22:24,240 --> 00:22:26,250 Hivyo kwa namna fulani, tunahitaji tu kuwa na uwezo wa flip kwamba kidogo, 355 00:22:26,250 --> 00:22:29,410 na tunaweza basi capitalize au Herufi za chini barua. 356 00:22:29,410 --> 00:22:32,720 Tumefanya hii katika siku za nyuma kwa kweli kwa kutumia kama hali ya 357 00:22:32,720 --> 00:22:35,930 na kuangalia kama barua ni kati ya mji mkuu na mji mkuu A Z, 358 00:22:35,930 --> 00:22:41,480 kisha matokeo kama - a + 26 au kitu kama hicho. 359 00:22:41,480 --> 00:22:46,130 Wewe pengine alifanya mabadiliko hesabu kwa herufi za alfabeti. 360 00:22:46,130 --> 00:22:49,270 Lakini nini kama tunaweza tu flip kwamba moja kidogo? 361 00:22:49,270 --> 00:22:59,080 Jinsi gani unaweza kwenda juu ya kuchukua thamani moja Byte ya bits, hivyo 8 bits kama 01,000,001 na 01,100,001? 362 00:22:59,080 --> 00:23:03,170 Kama alikuwa na mwelekeo wa wale wa bits, jinsi gani tunaweza kwenda juu ya kubadilisha tu mmoja wao? 363 00:23:03,170 --> 00:23:07,610 Nini kama sisi kuanzisha katika njano hapa ruwaza hii nyingine ya bits? 364 00:23:07,610 --> 00:23:13,420 Kama mimi kufanya zima sekunde 0 string njano ila kwa kidogo moja kwamba mimi unataka kubadilisha 365 00:23:13,420 --> 00:23:17,900 na kisha mimi kuanzisha operator mpya inayojulikana kama operator bitwise - 366 00:23:17,900 --> 00:23:21,210 bitwise kwa maana kwamba kazi kwenye bits mtu binafsi, 367 00:23:21,210 --> 00:23:25,360 si juu ya Byte nzima au ka nne wote mara moja. 368 00:23:25,360 --> 00:23:31,170 Hii bar wima huko katika njano unaonyesha kwamba nini kama sisi kuchukua ya uwakilishi wa mji mkuu 369 00:23:31,170 --> 00:23:37,060 na bitwise AU kwa mlolongo wa manjano bits? 370 00:23:37,060 --> 00:23:41,300 Kwa maneno mengine, kufikiri nyuma kwa majadiliano yetu ya misemo Boolean katika Scratch na kisha katika C. 371 00:23:41,300 --> 00:23:47,520 >> Kufanya Boolean au ina maana kwamba kuwa ni kweli, ama kitu kwanza ina kuwa kweli 372 00:23:47,520 --> 00:23:50,700 au kitu pili ina kuwa kweli au wao wote wana kwa kuwa ni kweli, 373 00:23:50,700 --> 00:23:53,270 na kisha kusababisha pato ni yenyewe kweli. 374 00:23:53,270 --> 00:24:00,230 Katika kesi hii hapa, je, sisi kupata kama sisi kuchukua 0 "au" ed na 0? Uongo au uongo? 375 00:24:00,230 --> 00:24:04,280 Ni bado uongo, hivyo lowercase bado kama ilivyotarajiwa. 376 00:24:04,280 --> 00:24:07,540 Nini kama badala ya sisi kufanya au 1 0? 377 00:24:07,540 --> 00:24:12,640 Hii sasa bado 1, lakini taarifa nini kuhusu kutokea hapa. 378 00:24:12,640 --> 00:24:18,630 Kama sisi kuanza na mtaji na sisi kuendelea "au" yake bits mtu binafsi kama sisi ni kufanya hapa, 379 00:24:18,630 --> 00:24:25,180 0 au mmoja wa manjano inatupa nini hapa chini? Hii inatupa 1. 380 00:24:25,180 --> 00:24:35,120 Kwa kweli, tuseme hatukujua nini toleo uppercase ya kweli ilikuwa kidogo. 381 00:24:35,120 --> 00:24:38,270 Hebu kwenda kufanya hili. Hebu hoja hii nyuma zaidi ya hapa. 382 00:24:38,270 --> 00:24:42,340 Hebu kufanya hii tena. 0 0 au anitiaye 0. 383 00:24:42,340 --> 00:24:45,020 1 au 0 anitiaye 1. 384 00:24:45,020 --> 00:24:48,020 0 au 1 anitiaye 1. 385 00:24:48,020 --> 00:24:52,880 0 0 au anitiaye 0. moja ijayo ni 0, moja ijayo ni 0, moja ijayo ni 0. 386 00:24:52,880 --> 00:24:55,660 1 au 0 anitiaye 1. 387 00:24:55,660 --> 00:24:59,140 Na hivyo hata kama hatukujua mapema kile Herufi za chini ilikuwa, 388 00:24:59,140 --> 00:25:04,770 tu kwa "au" ing na muundo huu wa bits kwamba tumekuwa iliyotolewa hapa katika njano, 389 00:25:04,770 --> 00:25:09,400 unaweza Herufi za chini mtaji kwa flipping kwamba kidogo. 390 00:25:09,400 --> 00:25:11,580 Sisi alitumia usemi wiki iliyopita: flipping kidogo. 391 00:25:11,580 --> 00:25:13,710 Jinsi gani unaweza kweli kufanya kwamba programmatically? 392 00:25:13,710 --> 00:25:16,390 Unatumia nini ujumla iitwayo mask, mfululizo wa bits, 393 00:25:16,390 --> 00:25:19,980 kwamba katika kesi hii tu hivyo hutokea kuangalia kama idadi hii hapa, 394 00:25:19,980 --> 00:25:22,980 na kisha wewe "au" ni pamoja kutumia hii mpya C operator, 395 00:25:22,980 --> 00:25:29,940 si | |, unatumia moja | na wewe ingekuwa kweli kupata jibu hili hapa kwa sababu kwa nini? 396 00:25:29,940 --> 00:25:35,120 Hii ni mahali 1s, 2S mahali, 4s, 8s, 16S, 32s. 397 00:25:35,120 --> 00:25:42,280 Hivyo ni zinageuka kuwa kama wewe kuchukua barua mtaji na bitwise AU kwa 32 integer, 398 00:25:42,280 --> 00:25:47,520 kwa sababu 32 integer, wakati ukiangalia hiyo kama bits, inaonekana kama hii, 399 00:25:47,520 --> 00:25:50,860 hiyo ina maana unaweza flip kidogo kwamba wewe kweli unataka. 400 00:25:50,860 --> 00:25:52,630 Na vile vile - na tutaangalia code katika muda tu - 401 00:25:52,630 --> 00:25:54,210 tuseme tunataka kwenda upande mwingine. 402 00:25:54,210 --> 00:25:58,210 >> Jinsi gani unaweza kwenda kutoka mji mkuu lowercase kwa? Ambayo inahitaji mabadiliko kidogo? 403 00:25:58,210 --> 00:25:59,820 Ni moja moja. 404 00:25:59,820 --> 00:26:03,970 Tunataka mabadiliko ya kwamba kidogo ya tatu 1-0. 405 00:26:03,970 --> 00:26:06,310 Na jinsi tunavyoweza kwenda juu ya kufanya hii? 406 00:26:06,310 --> 00:26:10,130 Jinsi gani sisi kugeuka mbali kidogo? Kwa nini mfano wa bits tunaweza kugeuka mbali kidogo? 407 00:26:11,580 --> 00:26:14,070 Nini kama sisi aina ya Geuza mask? 408 00:26:14,070 --> 00:26:17,350 Wakati kabla, sisi mzima manjano mask sekunde 0 409 00:26:17,350 --> 00:26:19,930 isipokuwa kwa kidogo moja tulitaka kurejea kwenye, 410 00:26:19,930 --> 00:26:25,580 nini kama wakati huu, sisi kufanya yote mask 1s isipokuwa kwa kidogo kwamba tunataka kugeuka mbali 411 00:26:25,580 --> 00:26:28,330 na kisha kutumia kile operator? 412 00:26:28,330 --> 00:26:30,560 Nini kama sisi "na" mambo? Hebu tuangalie. 413 00:26:30,560 --> 00:26:34,880 Kama sisi sasa flip na hii, tuseme kwamba mimi tena kujenga mask kwamba wote 1s 414 00:26:34,880 --> 00:26:37,650 isipokuwa kwa kidogo moja kwamba mimi nataka kuzima 415 00:26:37,650 --> 00:26:43,860 na kisha badala ya "au" namba nyeupe juu juu na idadi ya njano chini hapa, 416 00:26:43,860 --> 00:26:46,940 nini kama mimi badala yake "na" yao pamoja? Ni wito bitwise na. 417 00:26:46,940 --> 00:26:49,450 Kimantiki, ni kitu kimoja kama Boolean na. 418 00:26:49,450 --> 00:26:55,160 Hii inanipa 0 & 1 ni 0. Hivyo uongo na kweli ni uongo. 419 00:26:55,160 --> 00:26:58,160 Kweli na kweli ni kweli. 420 00:26:58,160 --> 00:27:04,020 Na hapa ni uchawi: Kweli na uongo ni uongo sasa, hivyo tumekuwa akageuka mbali kwamba kidogo. 421 00:27:04,020 --> 00:27:06,560 Na sasa wengine wa hadithi fulani ni moja kwa moja. 422 00:27:06,560 --> 00:27:11,970 Kwa sababu ya mapumziko ya mask ni 1s, haijalishi nini idadi ni nyeupe. 423 00:27:11,970 --> 00:27:15,580 Wakati wewe "na" kitu kwa kweli, wewe si kwenda na mabadiliko ya thamani yake. 424 00:27:15,580 --> 00:27:20,200 Kama ni kweli, itakuwa kubaki kweli. Kama ilikuwa uongo, itakuwa kubaki uongo. 425 00:27:20,200 --> 00:27:23,190 >> Lakini uchawi hutokea wakati wewe kuchukua kitu ambacho ni kweli 426 00:27:23,190 --> 00:27:25,430 na wewe basi, "na" kwa uongo. 427 00:27:25,430 --> 00:27:30,030 Hii ina athari ya kugeuka mbali ya kuwa kidogo. 428 00:27:30,030 --> 00:27:31,980 Hivyo cryptic kidogo huko. 429 00:27:31,980 --> 00:27:35,390 Hebu kweli kuangalia code baadhi, ambayo ili kweli kuangalia hata zaidi cryptic, 430 00:27:35,390 --> 00:27:38,220 lakini hebu tuangalie hapa tolower. 431 00:27:38,220 --> 00:27:45,880 Kama mimi kuangalia tolower, kwenda kutoka mji mkuu wa Herufi za chini, 432 00:27:45,880 --> 00:27:47,730 hebu angalia jinsi tuweze kutekeleza mpango huu. 433 00:27:47,730 --> 00:27:51,280 Hapa ni kuu, na si kuchukua hoja amri yoyote-line. 434 00:27:51,280 --> 00:27:55,980 Mimi kutangaza c tabia kwa barua kwamba mtumiaji anaenda aina in 435 00:27:55,980 --> 00:28:00,690 Mimi kisha kutumia do familiar wakati kitanzi tu kuhakikisha kwamba mtumiaji dhahiri anitiaye mtaji 436 00:28:00,690 --> 00:28:05,010 au B au C. .. Z, hivyo nipe kitu kati na Z. 437 00:28:05,010 --> 00:28:08,580 Na sasa nini mimi nafanya nini hapa? 438 00:28:08,580 --> 00:28:14,870 Mimi nina "au" hii ing na 0x20, lakini hiyo ni kweli sawa - 439 00:28:14,870 --> 00:28:19,500 na tutaweza kurudi huu katika wakati - 32. 440 00:28:19,500 --> 00:28:24,830 Hivyo tena, 32 ni muundo huu wa bits hapa. Kwa nini sisi kujua hili? 441 00:28:24,830 --> 00:28:26,320 Hebu fikiria nyuma wiki 0. 442 00:28:26,320 --> 00:28:31,010 Hii ni mahali 1s, 2S mahali, 4s, 8s, 16S, 32s mahali. 443 00:28:31,010 --> 00:28:33,470 Hivyo hii idadi ya njano hutokea kwa kuwa 32. 444 00:28:33,470 --> 00:28:40,570 Naweza kuchukua sehemu ya barua kama Char hapa, bitwise "au" kwa idadi halisi 32, 445 00:28:40,570 --> 00:28:45,250 na nini mimi kupata nyuma? toleo lowercase ya kwamba Char. 446 00:28:45,250 --> 00:28:48,830 wakati uliopita, ingawa, mimi walionyesha hii katika nukuu mbalimbali ya msingi. 447 00:28:48,830 --> 00:28:51,370 Nini hii kuwakilisha? >> [Mwanafunzi] hexadesimoli. 448 00:28:51,370 --> 00:28:53,050 [Malan] Hii hutokea kwa kuwakilisha hexadesimoli. 449 00:28:53,050 --> 00:28:55,170 Sisi si aliyesema kuhusu hexadesimoli yote kwamba mengi, 450 00:28:55,170 --> 00:28:57,330 lakini ni kweli rahisi katika kesi kama hii. 451 00:28:57,330 --> 00:29:01,730 >> Hata ingawa inaonekana ngumu zaidi na hata kama inaonekana kama 20 na si 32, 452 00:29:01,730 --> 00:29:06,240 zinageuka kuwa hexadesimoli ni kweli super rahisi nukuu 453 00:29:06,240 --> 00:29:10,810 kwa sababu katika kila hexadesimoli tarakimu baada 0x - na hii si kitu; 454 00:29:10,810 --> 00:29:13,960 hii ni binadamu mkataba kwamba anasema hapa inakuja idadi hexadesimoli - 455 00:29:13,960 --> 00:29:18,590 kila ya tarakimu hizi, 2 na kisha 0, wao wenyewe inaweza kuwakilishwa 456 00:29:18,590 --> 00:29:20,800 na hasa 4 bits. 457 00:29:20,800 --> 00:29:27,840 Hivyo kama sisi kufanya hivyo, basi mimi kufungua mhariri Nakala hapa - weird oto kukamilisha - 458 00:29:27,840 --> 00:29:35,940 kama sisi kufanya Nakala kidogo mhariri hapa, 0x20 idadi maana hapa ni 4 bits, hapa mwingine bits 4. 459 00:29:35,940 --> 00:29:38,050 Hebu kufanya rightmost bits 4 kwanza. 460 00:29:38,050 --> 00:29:44,690 0 wakati kuwakilishwa na bits 4 ni nini? Super rahisi. Tu wote sekunde 0. 461 00:29:44,690 --> 00:29:46,780 Hivyo 4 bits kama sekunde 0. 462 00:29:46,780 --> 00:29:53,510 Jinsi gani unaweza kuwakilisha 2? Ni muda tangu sisi alifanya hivyo, lakini ni 0,100. 463 00:29:53,510 --> 00:29:57,310 Hivyo hii ni mahali 1s, hii ni mahali 2S, na kisha Haijalishi nini maeneo mengine ni. 464 00:29:57,310 --> 00:30:00,610 Kwa maneno mengine, katika hexadesimoli unaweza kusema 0x20, 465 00:30:00,610 --> 00:30:04,340 lakini kama wewe basi kufikiri kuhusu nini ni 2 na ni jinsi gani kuwakilishwa katika binary, 466 00:30:04,340 --> 00:30:07,130 kile ni 0 na ni jinsi gani kuwakilishwa katika binary, 467 00:30:07,130 --> 00:30:10,440 majibu ya maswali hayo ni hii na hii, kwa mtiririko huo. 468 00:30:10,440 --> 00:30:14,380 Hivyo 0x20 kinachotokea kwa kuwakilisha muundo huu wa bits 8, 469 00:30:14,380 --> 00:30:16,880 ambayo ni just mask kwamba tulitaka. 470 00:30:16,880 --> 00:30:20,140 Hivyo hii ni kwa muda tu zoezi miliki, 471 00:30:20,140 --> 00:30:24,520 lakini ukweli ni katika code ni kawaida zaidi ya kawaida ya kuandika constants kama hii 472 00:30:24,520 --> 00:30:28,360 katika hexadesimoli kwa sababu kisha unaweza programu kiasi urahisi, 473 00:30:28,360 --> 00:30:32,560 hata kama ni inahitaji baadhi ya karatasi na penseli, kufikiri nini kwamba mfumo wa bits ni 474 00:30:32,560 --> 00:30:35,960 kwa sababu huwezi kueleza sekunde 0 na 1s kawaida katika code. 475 00:30:35,960 --> 00:30:38,540 Huwezi kwenda 00,010 na kadhalika. 476 00:30:38,540 --> 00:30:42,380 >> Una kuchukua notations decimal au hexadesimoli au octal au nyingine. 477 00:30:42,380 --> 00:30:47,540 Watu wengi huwa na pick hexadesimoli tu ili tarakimu kila inawakilisha bits 4 478 00:30:47,540 --> 00:30:49,320 na unaweza kufanya hili math haraka. 479 00:30:49,320 --> 00:30:54,990 Na mimi itabidi kupitisha mkono wangu katika toupper, ambayo ni karibu sawa; inaonekana karibu kufanana. 480 00:30:54,990 --> 00:31:01,900 Toupper kinachotokea kwa kutumia si operator au bali this guy na df. 481 00:31:01,900 --> 00:31:09,300 Je df kuwakilisha? df? Mtu yeyote? >> [Mwanafunzi] 255. 482 00:31:09,300 --> 00:31:12,780 255? Si 255. Hiyo itakuwa ff. 483 00:31:12,780 --> 00:31:15,210 Tutaweza kuondoka hii moja kama zoezi kidogo. 484 00:31:15,210 --> 00:31:23,460 Lakini kama wewe kwenda kutoka 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 na kisha nini inakuja baada ya 9? 485 00:31:23,460 --> 00:31:26,510 Sisi ni aina ya nje ya tarakimu decimal, lakini katika hexadesimoli kile unakuja baada ya 9? 486 00:31:26,510 --> 00:31:29,510 [Mwanafunzi] a. >> Hivyo, b, c, d. 487 00:31:29,510 --> 00:31:33,470 Unaweza kufikiri kutoka huko nini muundo wa bits d kweli inawakilisha. 488 00:31:33,470 --> 00:31:38,850 Na kama sisi kufanya math, tutaweza kuona kwamba mask wewe kuishia kupata nyuma ni sawa na hii. 489 00:31:38,850 --> 00:31:45,580 Hii ni f, wote 1s, na hii ni d. Hivyo df inawakilisha kwamba mask. Wote haki. 490 00:31:45,580 --> 00:31:50,980 Na mwisho, si kufanya mambo sound super, super kiufundi, 491 00:31:50,980 --> 00:31:53,840 lakini nadhani sisi alitaka kuandika mpango kwamba hana huu. 492 00:31:53,840 --> 00:31:58,960 Hebu kwenda mbele na kufanya binary, ambayo ni programu katika faili inayoitwa binary.c. 493 00:31:58,960 --> 00:32:02,050 Na sasa napenda kukimbia binary na kunipa integer zisizo hasi. 494 00:32:02,050 --> 00:32:03,960 Hebu kuanza rahisi na aina katika 0. 495 00:32:03,960 --> 00:32:09,010 Hii sasa ni mpango kwamba Prints nje integer katika binary uwakilishi wake. 496 00:32:09,010 --> 00:32:13,470 Hivyo kama mimi kucheza mchezo huu tena na aina katika 1 tu, mimi lazima kupata uwakilishi 32-bit ya 1. 497 00:32:13,470 --> 00:32:15,490 Kama mimi kufanya hii tena na 2, mimi lazima kupata hiyo. 498 00:32:15,490 --> 00:32:19,310 Kama mimi kufanya 7, mimi lazima kupata 1s chache mwishoni na kadhalika. 499 00:32:19,310 --> 00:32:22,740 Ni zinageuka mimi kutaja hili kwa sababu pamoja na shughuli bitwise 500 00:32:22,740 --> 00:32:25,490 unaweza kweli kufanya kitu kimoja nyingine pia. 501 00:32:25,490 --> 00:32:29,130 Unaweza kuunda masks haya dynamically. 502 00:32:29,130 --> 00:32:32,800 Kuangalia mfano huu moja ya mwisho ya kuwashirikisha shughuli bitwise. 503 00:32:32,800 --> 00:32:35,490 Hapa ni sehemu ya kwanza ya kificho, na kuchochea mtumiaji kwa idadi, 504 00:32:35,490 --> 00:32:38,130 na anasisitiza kwamba wewe nipe integer zisizo hasi. 505 00:32:38,130 --> 00:32:39,780 Basi hiyo ni aina ya mambo ya kale shule. 506 00:32:39,780 --> 00:32:41,980 Lakini hapa ni kitu ambacho ni aina ya kuvutia. 507 00:32:41,980 --> 00:32:44,910 >> Jinsi gani mimi kwenda kuhusu uchapishaji idadi katika binary? 508 00:32:44,910 --> 00:32:48,970 Mimi kwanza iterate kutoka kile kile? 509 00:32:48,970 --> 00:32:52,270 Nini ukubwa wa int kawaida, angalau katika appliance? >> [Mwanafunzi] 4. 510 00:32:52,270 --> 00:32:57,130 Ni 4. Hivyo 4 * 8 ni 32-1 ni 31. 511 00:32:57,130 --> 00:33:02,590 Basi, ikiwa mimi nina kuanza kuhesabu kutoka 31, kwamba inawakilisha, ni zamu nje, 512 00:33:02,590 --> 00:33:07,630 tu conceptually, kidogo 31 au zaidi kidogo ili, ambayo ni guy hii zaidi ya hapa, 513 00:33:07,630 --> 00:33:09,650 ambapo hii ni kwenda kuwa kidogo 0. 514 00:33:09,650 --> 00:33:12,850 Hivyo hii ni kidogo kidogo ... 01 31. 515 00:33:12,850 --> 00:33:14,950 Hivyo kile ni kanuni hii kufanya? 516 00:33:14,950 --> 00:33:20,140 Taarifa hii kwa kitanzi, ingawa inaonekana cryptic, ni tu iterating kutoka 31 chini ya 0. Hiyo ni. 517 00:33:20,140 --> 00:33:24,530 Hivyo sehemu ya kuvutia sasa lazima katika mistari haya 5 hapa. 518 00:33:24,530 --> 00:33:28,110 Ona kwamba katika mstari huu mimi nina kutangaza variable kuitwa mask 519 00:33:28,110 --> 00:33:30,790 kuwa thabiti na hadithi yetu ya namba hizi njano. 520 00:33:30,790 --> 00:33:32,200 Na kisha nini hii kufanya? 521 00:33:32,200 --> 00:33:35,720 Hii ni nyingine operator bitwise tumekuwa si kuona mbele, uwezekano mkubwa. 522 00:33:35,720 --> 00:33:38,300 Ni kushoto kuhama operator. 523 00:33:38,300 --> 00:33:40,060 Operator Hii haina hii. 524 00:33:40,060 --> 00:33:44,920 Hapa ni namba 1, na kama huna i kushoto kuhama, kushoto kuhama, 525 00:33:44,920 --> 00:33:49,260 nini unafikiri kwamba ina athari ya kufanya kwa 1 kwamba mtu binafsi? 526 00:33:49,260 --> 00:33:51,290 Literally shifting ni juu. 527 00:33:51,290 --> 00:33:57,540 Hivyo kama namba 1 ni nini una upande wa kushoto na kuanza kwa initializing i kwa 31, 528 00:33:57,540 --> 00:34:03,490 kile ni kwamba anaenda kufanya nini? Ni kwenda kuchukua namba 1 na kuhama ni maeneo 31 zaidi ya hapa. 529 00:34:03,490 --> 00:34:06,210 Na kwa sababu kuna wazi hakuna tarakimu nyingine nyuma yake, 530 00:34:06,210 --> 00:34:10,350 hizo na default kubadilishwa na sekunde 0. 531 00:34:10,350 --> 00:34:15,120 Hivyo itabidi kuanza nje na idadi 1, ambayo bila shaka inaonekana kama hii - 532 00:34:15,120 --> 00:34:18,659 na basi mimi kuteka ni zaidi ya hapa katikati. 533 00:34:18,659 --> 00:34:22,139 Na kisha kama wewe kuhama mambo kwa upande wa kushoto, guy hii kimsingi inakwenda kwa njia hii. 534 00:34:22,139 --> 00:34:24,659 Lakini kwa haraka kama wewe kufanya hivyo, 0 anapata kujazwa ndani 535 00:34:24,659 --> 00:34:28,360 Kama wewe kuhama mara ya pili, unaendelea kwa njia hii na mwingine anapata kujazwa 0 in 536 00:34:28,360 --> 00:34:31,000 >> Wewe kuhama tena na kisha 0 mwingine anapata kujazwa ndani 537 00:34:31,000 --> 00:34:37,900 Hivyo kama wewe kufanya jambo hili la << 1 i 31, maeneo, wewe kuishia kupata mask 538 00:34:37,900 --> 00:34:42,550 kwamba ni 32 wahusika muda mrefu, mmoja leftmost ambayo ni 1, 539 00:34:42,550 --> 00:34:45,199 yote ya mapumziko ya ambayo ni 0. 540 00:34:45,199 --> 00:34:50,880 Na zinageuka, kama kando, shifting idadi ya kushoto kama hii 541 00:34:50,880 --> 00:34:53,530 pia kiajali, na wakati mwingine conveniently, 542 00:34:53,530 --> 00:34:57,520 ina athari ya kufanya nini kwa idadi hiyo? >> [Mwanafunzi] kutaka kuongezwa. 543 00:34:57,520 --> 00:35:00,980 Kutaka kuongezwa kwa sababu kila moja ya nguzo - mahali 1s, 2S mahali, 4s mahali, 544 00:35:00,980 --> 00:35:05,030 8s mahali, 16S mahali - they're wote mara dufu kama wewe kwenda kushoto. 545 00:35:05,030 --> 00:35:09,500 Au tuseme, wakati wewe kuhama 1s utaenda kuishia kutaka kuongezwa thamani ya idadi. 546 00:35:09,500 --> 00:35:12,070 Unaweza kuishia kufanya mabadiliko ya kuvutia ya tarakimu 547 00:35:12,070 --> 00:35:15,640 na shifting kila kitu juu kwa namna hii kwa nguvu ya 2. 548 00:35:15,640 --> 00:35:17,150 Hivyo ni jinsi gani kazi hii? 549 00:35:17,150 --> 00:35:22,580 Hii basi anitiaye mask kwamba wote isipokuwa kwa sekunde 0 1 katika mahali just mimi nataka, 550 00:35:22,580 --> 00:35:27,920 na kisha hii kujieleza, ambayo ni kuibiwa kutoka toupper.c, 551 00:35:27,920 --> 00:35:31,770 ni kusema tu kuchukua idadi n kwamba mtumiaji typed katika, 552 00:35:31,770 --> 00:35:34,730 "Na" kwa mask kwamba, na nini ni wewe kwenda kupata? 553 00:35:34,730 --> 00:35:39,200 Wewe ni kwenda kupata 1 kama kuna 1 katika eneo kwamba Masked, 554 00:35:39,200 --> 00:35:41,570 au wewe ni kwenda kupata 0 kama kuna si. 555 00:35:41,570 --> 00:35:44,370 Na hivyo programu hii yote haina ufanisi ni ina kitanzi, 556 00:35:44,370 --> 00:35:48,340 na inajenga mask na 1 zaidi ya hapa, basi 1 zaidi ya hapa, basi 1 zaidi ya hapa, 557 00:35:48,340 --> 00:35:52,950 na inatumia hii bitwise NA hila kusema ni kuna kidogo 1 katika pembejeo ya mtumiaji hapa? 558 00:35:52,950 --> 00:35:59,220 >> Je, kuna kidogo 1 katika pembejeo ya mtumiaji hapa? Na kama hivyo, literally magazeti 1, mwingine magazeti 0. 559 00:35:59,220 --> 00:36:03,780 Sisi ni kufanya hii kwa sababu tu ints kwamba ni kwa nini sisi ni kufanya bits 32 badala ya 8, 560 00:36:03,780 --> 00:36:06,900 lakini kile ambacho tumekuwa kuletwa basi ni hii bitwise NA, AU hii bitwise, 561 00:36:06,900 --> 00:36:10,450 na hii kushoto kuhama operator, ambayo si mara nyingi sana msaada, 562 00:36:10,450 --> 00:36:12,230 lakini zinageuka wanaweza kuwa. 563 00:36:12,230 --> 00:36:16,560 Kwa kweli, kama ungekuwa na kuwakilisha kitu kama safu ya Booleans 564 00:36:16,560 --> 00:36:21,260 tu kuwakilisha kweli au uongo, tuseme alitaka kuweka wimbo wa kama au 565 00:36:21,260 --> 00:36:24,630 chumba kamili ya wanafunzi 300 ni sasa, 566 00:36:24,630 --> 00:36:29,420 unaweza kutangaza safu ya ukubwa 300 ya aina bool ili kupata bools 300, 567 00:36:29,420 --> 00:36:33,090 na unaweza kuweka kila kweli kama mtu ni hapa na uongo vinginevyo. 568 00:36:33,090 --> 00:36:37,550 Kwa nini ni kuwa uwakilishi katika muundo kwamba data ufanisi? 569 00:36:39,370 --> 00:36:44,800 Nini mbaya kuhusu mpango wa kuwa muundo data, safu ya bools 300? 570 00:36:46,190 --> 00:36:49,600 Nini ni bool, kwa kweli, chini ya Hood? 571 00:36:49,600 --> 00:36:52,310 Hii pia, ni kitu ambacho wanaweza kuwa familiar. 572 00:36:52,310 --> 00:36:53,720 Ni zinageuka hakuna bool. 573 00:36:53,720 --> 00:36:56,620 Kumbuka sisi aina ya umba kwamba na faili cs50.h, 574 00:36:56,620 --> 00:36:58,630 ambayo yenyewe ni pamoja bool standard. 575 00:36:58,630 --> 00:37:00,930 C ni aina ya bubu, ingawa, linapokuja bool. 576 00:37:00,930 --> 00:37:04,880 Ni matumizi ya bits 8 kuwakilisha kila bool, ambayo ni kabisa fujo 577 00:37:04,880 --> 00:37:09,040 kwa sababu ni wazi, jinsi wengi bits gani unahitaji kuwakilisha bool? 1 tu. 578 00:37:09,040 --> 00:37:13,190 Hivyo ni zinageuka kuwa kama wewe sasa una uwezo pamoja na waendesha bitwise 579 00:37:13,190 --> 00:37:17,760 kuendesha bits mtu binafsi hata katika Char, hata katika Byte moja, 580 00:37:17,760 --> 00:37:21,380 zinageuka unaweza kupungua kumbukumbu inahitajika kuwakilisha kitu kijinga 581 00:37:21,380 --> 00:37:25,490 kama kwamba mahudhurio styled data muundo kwa sababu ya 8. 582 00:37:25,490 --> 00:37:29,820 Badala ya kutumia bits nane kuwakilisha kweli au uongo, unaweza kutumia moja literally 583 00:37:29,820 --> 00:37:34,500 kwa kutumia Byte moja kwa kila wanafunzi nane katika darasa 584 00:37:34,500 --> 00:37:41,990 na toggling kutoka bits 0-1 mtu binafsi kwa kutumia aina hii ya tricks ngazi ya chini. 585 00:37:43,850 --> 00:37:49,460 Kwamba kwa kweli kukomesha nishati. Je, kuna maswali kuhusu shughuli bitwise? 586 00:37:49,460 --> 00:37:52,710 >> Yeah. >> [Mwanafunzi] Je, kuna operator kipekee au? 587 00:37:52,710 --> 00:37:56,440 Ndiyo. Kuna operator kipekee au kwamba inaonekana kama hii, ^, alama karoti, 588 00:37:56,440 --> 00:38:02,070 ambayo ina maana tu jambo la kwanza au kitu pili inaweza kuwa 1 kwa pato kuwa 1. 589 00:38:02,070 --> 00:38:07,750 Kuna pia si, ~, ambayo itawawezesha Geuza 0 kwa kinyume 1 au makamu pia. 590 00:38:07,750 --> 00:38:11,600 Na pia kuna haki ya kuhama operator, >>, ambayo ni kinyume moja tuliona. 591 00:38:11,600 --> 00:38:13,850 Wote haki. Hebu sasa mambo kwa kiwango cha juu. 592 00:38:13,850 --> 00:38:16,770 Sisi kuanza kwa kuzungumza kuhusu maandishi na kisha compressing ni 593 00:38:16,770 --> 00:38:19,650 na anayewakilisha asilia na idadi chache ya bits; 594 00:38:19,650 --> 00:38:22,890 sisi aliyesema kidogo kuhusu jinsi gani tunaweza sasa kuanza kufanyia mambo katika ngazi bitwise. 595 00:38:22,890 --> 00:38:26,640 Hebu sasa zoom nyuma juu ya miguu 10,000 kwa uwakilishi 596 00:38:26,640 --> 00:38:29,250 mambo magumu zaidi kama graphics. 597 00:38:29,250 --> 00:38:32,950 Hapa tuna bendera ya Ujerumani, hapa tuna moja ya Ufaransa. 598 00:38:32,950 --> 00:38:36,350 Haya yanaweza kuwakilishwa katika format faili unaweza kujua - GIFs, kwa mfano. 599 00:38:36,350 --> 00:38:40,030 Kama ve milele kuonekana picha kwenye mtandao kwamba mwisho katika. Gif, 600 00:38:40,030 --> 00:38:43,000 hii ni interchange graphics format. 601 00:38:43,000 --> 00:38:47,530 Hizi bendera mbili hapa aina ya mikopo wenyewe kwa compression 602 00:38:47,530 --> 00:38:52,050 kwa nini labda dhahiri sababu? >> [Inaudible mwanafunzi majibu] 603 00:38:52,050 --> 00:38:53,440 Kuna mengi ya marudio, haki? 604 00:38:53,440 --> 00:38:57,270 Ili kutuma bendera ya Ujerumani, kufikiri ya hii kama kuwa picha kwenye screen 605 00:38:57,270 --> 00:38:59,030 nyuma katika siku yako Scratch. 606 00:38:59,030 --> 00:39:02,380 Unaweza kukumbuka kwamba kuna mtu au saizi ya dots kwamba compose picha. 607 00:39:02,380 --> 00:39:06,650 >> Kuna mstari mzima wa dots nyeusi na mwingine safu nzima ya dots nyeusi. 608 00:39:06,650 --> 00:39:10,110 Kuna kundi la safu ya dots nyeusi kwamba tunaweza kuona kama kweli sisi zoomed katika, 609 00:39:10,110 --> 00:39:13,370 sana kama wakati sisi zoomed katika juu ya uso Rob katika Photoshop. 610 00:39:13,370 --> 00:39:15,500 Haraka kama sisi got zaidi na zaidi na zaidi katika picha, 611 00:39:15,500 --> 00:39:19,990 wewe kuanza kuona pixelation, wote wa viwanja kuwa linajumuisha jicho lake katika kesi hiyo. 612 00:39:19,990 --> 00:39:24,130 Same mpango hapa. Kama sisi zoomed katika kidogo kabisa, ungependa kuona dots mtu binafsi. 613 00:39:24,130 --> 00:39:27,110 Naam, hii ni aina ya taka ya bits. 614 00:39:27,110 --> 00:39:32,120 Kama tatu wa bendera ni nyeusi na ya tatu ya bendera ni njano na kadhalika, 615 00:39:32,120 --> 00:39:34,860 kwa nini tushindwe kwa namna fulani compress hii bendera? 616 00:39:34,860 --> 00:39:39,560 Na hata bendera Kifaransa inaweza kuwa Komprimerade ingawa muundo ni tofauti kidogo. 617 00:39:39,560 --> 00:39:44,120 Ni zinageuka faili GIF format ni lossless compression format, 618 00:39:44,120 --> 00:39:48,420 ambayo ina maana unaweza kuchukua sura kama bendera ya Ujerumani hapa, 619 00:39:48,420 --> 00:39:53,540 unaweza kutupa mbali mengi ya bits yake bila kutoa sadaka quality. 620 00:39:53,540 --> 00:39:55,340 Hii ni tofauti na kitu kama JPEGs, 621 00:39:55,340 --> 00:39:57,050 ambayo wengi wetu pengine ni zaidi ya ukoo. 622 00:39:57,050 --> 00:39:59,000 Facebook photos na Flickr picha na kama 623 00:39:59,000 --> 00:40:02,200 ni karibu daima kuokolewa kama JPEGs wakati wao ni uploaded, 624 00:40:02,200 --> 00:40:08,100 lakini JPEGs ni lossy - format ambapo huna kutupa bits - LOSSY 625 00:40:08,100 --> 00:40:10,430 lakini wewe pia kutupa quality. 626 00:40:10,430 --> 00:40:13,890 Na hivyo kama wewe compress photos kwa Photoshop au upload yao kwa Facebook 627 00:40:13,890 --> 00:40:15,580 au kuchukua kwenye simu kweli crappy, 628 00:40:15,580 --> 00:40:19,510 unajua kwamba picha ya kuanza kupata sana splotchy na pixelated, 629 00:40:19,510 --> 00:40:22,290 na kwamba kwa sababu ni kuwa Komprimerade na kompyuta au simu 630 00:40:22,290 --> 00:40:24,550 na literally kutupa taarifa mbali. 631 00:40:24,550 --> 00:40:28,500 Lakini GIF ni ajabu kwa kuwa unaweza kutumia bits wachache kuliko nguvu, kwa default 632 00:40:28,500 --> 00:40:30,750 bila ya kupoteza taarifa yoyote. 633 00:40:30,750 --> 00:40:32,410 >> Na kimsingi anafanya hivyo kama ifuatavyo. 634 00:40:32,410 --> 00:40:38,740 Badala ya kuhifadhi katika faili kama BMP ingekuwa mara tatu kwa RGB nyeusi, nyeusi, nyeusi, nyeusi, 635 00:40:38,740 --> 00:40:42,570 nyeusi, nyeusi, nyeusi, nyeusi, nyeusi, nyeusi, nyeusi, nyeusi na kadhalika, 636 00:40:42,570 --> 00:40:45,640 badala yake, format GIF ni kwenda kusema, "Black," 637 00:40:45,640 --> 00:40:48,330 na kisha, "Rudia hivi mara 100," au kitu kama hicho. 638 00:40:48,330 --> 00:40:52,280 "Black, kurudia mara hii 100, nyeusi, kurudia mara hii 100 ..." 639 00:40:52,280 --> 00:40:54,530 "Yellow, kurudia mara hii 100." 640 00:40:54,530 --> 00:40:57,200 Na hivyo anakumbuka, kimsingi, pixel leftmost 641 00:40:57,200 --> 00:41:02,160 na kisha husimba namna fulani dhana ya kurudia kwamba pixel tena na tena. 642 00:41:02,160 --> 00:41:06,110 Hivyo basi unaweza GIFs compress wenyewe bila ya kupoteza taarifa yoyote. 643 00:41:06,110 --> 00:41:09,510 Lakini kama alikuwa na nadhani, kama kwamba ni algorithm kwamba gifs matumizi, 644 00:41:09,510 --> 00:41:13,180 ambayo ya bendera hizi, ingawa wao kuangalia kufanana katika kawaida, 645 00:41:13,180 --> 00:41:19,620 ni kwenda kuwa ndogo wakati kuokolewa kwenye disk kama GIF? >> [Mwanafunzi] Ujerumani. 646 00:41:19,620 --> 00:41:21,660 Ujerumani ni kwenda kuwa ndogo? Kwa nini? 647 00:41:21,660 --> 00:41:26,620 [Mwanafunzi] Kwa sababu wewe kurudia hivyo wengi, mara nyingi usawa 648 00:41:26,620 --> 00:41:29,010 na kisha wewe kurudia wakati mwingine. >> Hasa. 649 00:41:29,010 --> 00:41:32,020 Kwa sababu watu ambao zuliwa GIF aina tu ya kiholela aliamua 650 00:41:32,020 --> 00:41:36,040 kwamba marudio itakuwa leveraged usawa na si laterally. 651 00:41:36,040 --> 00:41:40,900 Kuna mengi zaidi marudio laterally hapa katika bendera ya Ujerumani kuliko katika bendera ya Kifaransa. 652 00:41:40,900 --> 00:41:44,430 Hivyo kama sisi kweli kufungua folda kwenye gari yangu ngumu ambayo ina GIFs hizi, 653 00:41:44,430 --> 00:41:51,920 unaweza kuona kwamba bendera ya Ujerumani hapa ni 2 kilobytes na moja ni Kifaransa 4 kilobytes. 654 00:41:51,920 --> 00:41:54,080 Hutokea kwa kuwa kwa bahati mbaya kuwa moja ni mara mbili nyingine, 655 00:41:54,080 --> 00:41:57,960 lakini ni kwa kweli kesi hiyo bendera Kifaransa ni kubwa zaidi. 656 00:41:57,960 --> 00:42:01,250 >> Hata ingawa sisi ni kuzungumza hapa kuhusu graphics, mawazo huo unaweza kuomba 657 00:42:01,250 --> 00:42:05,150 si mambo kama bendera lakini picha ambazo ni kidogo ngumu zaidi. 658 00:42:05,150 --> 00:42:08,170 Kama wewe kuchukua picha ya apple, hakika kuna mengi ya kurudia huko, 659 00:42:08,170 --> 00:42:11,040 hivyo tunaweza kukumbuka kwamba kwa namna fulani background default ni bluu 660 00:42:11,040 --> 00:42:13,230 na hivyo, kama picha kulia unaonyesha, 661 00:42:13,230 --> 00:42:16,830 na kukumbuka rangi ya pixel kila moja katika picha hii. 662 00:42:16,830 --> 00:42:21,060 Hivyo tunaweza kutupa bits mbali huko bila ya kupoteza habari. 663 00:42:21,060 --> 00:42:23,340 apple bado inaonekana tu sawa. 664 00:42:23,340 --> 00:42:27,510 Katika mfano huu hapa, unaweza kuona nini kinatokea katika movie. 665 00:42:27,510 --> 00:42:31,970 Hizi kuwakilisha reels filamu zamani-shule ambapo katika picha ya juu kuna 666 00:42:31,970 --> 00:42:36,900 una kuendesha gari RV zamani nyumba na mti. 667 00:42:36,900 --> 00:42:42,130 Na kama kwamba van anatoa nyuma kutoka kushoto kwenda kulia, ni nini wazi si kubadilisha? 668 00:42:42,130 --> 00:42:45,320 nyumba si kwenda popote, na mti si kwenda popote. 669 00:42:45,320 --> 00:42:47,700 Kitu pekee ambacho ni kusonga van katika kesi hii. 670 00:42:47,700 --> 00:42:51,650 Hivyo kama Background Kutobadilika unaonyesha, nini unaweza kufanya katika sinema 671 00:42:51,650 --> 00:42:56,530 ni vile vile tu kutupa taarifa kwamba haina mabadiliko katika kati ya muafaka. 672 00:42:56,530 --> 00:42:58,900 Hii ni kwa ujumla inayojulikana kama compression interframe 673 00:42:58,900 --> 00:43:02,120 ambapo kama frame hii inaonekana karibu kufanana na hii moja, 674 00:43:02,120 --> 00:43:05,390 basi si bother kuhifadhi kwenye disk yoyote ya habari kufanana 675 00:43:05,390 --> 00:43:09,250 juu ya muafaka haya kati, hebu tu kutumia muafaka muhimu mara moja kwa wakati 676 00:43:09,250 --> 00:43:13,420 kwamba kweli kuhifadhi kwamba taarifa redundantly tu kama sanity kidogo kuangalia. 677 00:43:13,420 --> 00:43:18,620 >> Kwa kulinganisha, njia nyingine ya video compressing ni katika mfano huu wa pili na ya chini hapa, 678 00:43:18,620 --> 00:43:23,970 ambapo badala ya kuhifadhi 30 muafaka, kwa nini sio tu kuhifadhi muafaka 15 pili badala yake? 679 00:43:23,970 --> 00:43:27,070 Badala ya aina ya movie inapita uzuri, kikamilifu, 680 00:43:27,070 --> 00:43:30,060 inaweza kuangalia kama ni stuttering kidogo, kidogo umri wa shule, 681 00:43:30,060 --> 00:43:37,190 lakini athari wavu itakuwa kutumia bits mbali wachache kuliko ili vinginevyo kuwa muhimu. 682 00:43:37,190 --> 00:43:39,240 Hivyo ambapo gani hii kisha kuondoka sisi? 683 00:43:39,240 --> 00:43:41,700 Hiyo ilikuwa kidogo ya kando ambapo mwingine unaweza kwenda kwa compression. 684 00:43:41,700 --> 00:43:45,140 Kwa zaidi juu ya kwamba, kuchukua darasa kama CS175 hapa. 685 00:43:45,140 --> 00:43:46,990 Hapa ni mfano mwingine ndani ya video. 686 00:43:46,990 --> 00:43:49,190 Kama nyuki ni kitu tu kusonga, 687 00:43:49,190 --> 00:43:51,790 kweli unaweza kutupa habari katika muafaka wale katikati 688 00:43:51,790 --> 00:43:55,260 kwa sababu ya maua na anga na majani si kubadilisha. 689 00:43:55,260 --> 00:43:57,960 Lakini hebu fikiria sasa moja ya mwisho kitu. 690 00:43:57,960 --> 00:44:03,890 Katika dakika 5 ijayo sisi kuondoka C nyuma ya milele katika hotuba? Ndiyo. Si katika psets, ingawa. 691 00:44:03,890 --> 00:44:10,210 Mwisho hadithi kuhusu C na kisha sisi kupata stuff sexy sana 692 00:44:10,210 --> 00:44:13,870 kuwashirikisha HTML na Mtandao na woo-hoo. Wote haki. 693 00:44:13,870 --> 00:44:16,050 Hapa sisi kwenda. Hiyo ni motisha. 694 00:44:16,050 --> 00:44:20,020 Ni zinageuka wakati huu wote wakati tumekuwa kuandika programu sisi kukimbia Clang. 695 00:44:20,020 --> 00:44:23,890 Na Clang, tumekuwa alisema tangu wiki ya kwanza pretty much, inachukua chanzo code 696 00:44:23,890 --> 00:44:25,740 na waongofu katika kanuni kitu. 697 00:44:25,740 --> 00:44:28,540 Inachukua C na waongofu katika sekunde 0 na 1s. 698 00:44:28,540 --> 00:44:32,150 Nimekuwa aina ya kuwa amelala na wewe kwa muda wa wiki chache kwa sababu si kabisa kama rahisi kama hayo. 699 00:44:32,150 --> 00:44:36,750 >> Kuna mengi zaidi kinachoendelea chini ya Hood wakati kukimbia mpango kama Clang. 700 00:44:36,750 --> 00:44:39,560 Kwa kweli, mchakato wa kuandaa mpango unaweza kweli kuwa muhtasari, 701 00:44:39,560 --> 00:44:42,210 kama unaweza kukumbuka kutoka video Rob juu compilers, 702 00:44:42,210 --> 00:44:47,580 ndani ya hatua hizi 4: kabla ya usindikaji, kuandaa yenyewe, kukusanyika, na kuunganisha. 703 00:44:47,580 --> 00:44:51,950 Lakini sisi katika darasa na watu wengi katika ulimwengu kawaida muhtasari hatua zote hizi 704 00:44:51,950 --> 00:44:54,410 kama tu "kuandaa." 705 00:44:54,410 --> 00:44:58,070 Lakini kama sisi kuanza na chanzo code kama hii, wanakumbuka hili ni rahisi labda C mpango 706 00:44:58,070 --> 00:45:03,530 tumekuwa imeandikwa hivi sasa, kukumbuka kwamba wakati compiled inaishia kuangalia kama hii. 707 00:45:03,530 --> 00:45:07,310 Lakini kuna kweli hatua ya kati, na wale hatua ni kama ifuatavyo. 708 00:45:07,310 --> 00:45:10,750 Kwanza kuna kitu hii ifikapo sana juu ya hili na wengi wa mipango yetu, 709 00:45:10,750 --> 00:45:13,550 # Pamoja 710 00:45:13,550 --> 00:45:17,210 Je ni pamoja na kufanya # ajili yetu? 711 00:45:17,210 --> 00:45:24,150 Ni pretty much nakala na pastes yaliyomo ndani ya faili stdio.h yangu ili kwamba kwa nini? 712 00:45:24,150 --> 00:45:27,220 Mbona mimi huduma kuhusu yaliyomo ya stdio.h? Nini katika huko wa maslahi? 713 00:45:27,220 --> 00:45:32,310 Tamko Printf wa, mfano wake, ili compiler basi anajua nini namaanisha 714 00:45:32,310 --> 00:45:34,900 wakati mimi kutaja kazi hii printf. 715 00:45:34,900 --> 00:45:39,390 Hivyo hatua ya 1 katika kuandaa ni kabla ya usindikaji, ambapo mpango kama Clang 716 00:45:39,390 --> 00:45:43,450 au baadhi ya mpango msaidizi kwamba Clang kuja na wasomaji code yako juu hadi chini, 717 00:45:43,450 --> 00:45:47,740 kushoto na kulia, na wakati wowote anaona ishara # ikifuatiwa na Keyword kama ni pamoja na, 718 00:45:47,740 --> 00:45:53,980 hufanya kwamba operesheni, kuiga na pasting katika hii stdio.h kesi ndani ya faili yako. 719 00:45:53,980 --> 00:45:55,510 Hiyo ni hatua ya 1. 720 00:45:55,510 --> 00:45:59,620 Kisha una kubwa sana C faili sababu ya nakala kubwa, kuweka kazi hiyo ilitokea tu. 721 00:45:59,620 --> 00:46:01,710 >> Hatua ya 2 sasa ni kuandaa. 722 00:46:01,710 --> 00:46:04,880 Lakini zinageuka kuandaa inachukua chanzo kificho kwamba inaonekana kama hii 723 00:46:04,880 --> 00:46:08,160 na anarudi katika kitu ambacho inaonekana kama hii, 724 00:46:08,160 --> 00:46:12,560 ambayo kwa wale jamaa ni wito? >> [Mwanafunzi] Bunge. >> Baraza lugha. 725 00:46:12,560 --> 00:46:16,700 Hii ni kweli kitu kama wewe kuchukua CS61 utasikia kupiga mbizi katika kwa undani zaidi. 726 00:46:16,700 --> 00:46:22,380 Hii ni kuhusu karibu kama unaweza kupata kwa kuandika sekunde 0 na 1s mwenyewe 727 00:46:22,380 --> 00:46:25,850 lakini kuandika mambo katika njia ambayo bado inafanya angalau kidogo ya akili vile. 728 00:46:25,850 --> 00:46:30,760 Hizi ni mashine ya maelekezo, na kama sisi kitabu chini na kazi kuu hapa, 729 00:46:30,760 --> 00:46:35,470 taarifa kwamba kuna maelekezo haya kushinikiza, hoja mafundisho, Ondoa mafundisho, 730 00:46:35,470 --> 00:46:38,550 piga mafundisho, na kadhalika. 731 00:46:38,550 --> 00:46:42,930 Wakati kusikia kwamba kompyuta yako ina Intel ndani, 732 00:46:42,930 --> 00:46:46,180 una CPU Intel katika Mac au PC yako, nini maana ya kwamba? 733 00:46:46,180 --> 00:46:51,200 CPU huja lililojengwa na makampuni kama Intel kuelewa maelekezo fulani. 734 00:46:51,200 --> 00:46:55,770 Wao hawana wazo nini kazi kama byta ni au kuu ni per se, 735 00:46:55,770 --> 00:47:00,060 lakini wao kujua nini ngazi ya chini sana maelekezo kama kuongeza, Ondoa, kushinikiza, 736 00:47:00,060 --> 00:47:02,430 hoja, piga, na kadhalika ni. 737 00:47:02,430 --> 00:47:06,170 Hivyo wakati wewe kukusanya C code katika lugha mkutano, 738 00:47:06,170 --> 00:47:11,820 user yako sana code kirafiki-kuangalia ni waongofu katika kitu ambacho inaonekana kama hii, 739 00:47:11,820 --> 00:47:21,670 kwamba literally moves ka au ka 4 kuzunguka katika vitengo vile ndogo ndani na nje ya CPU. 740 00:47:21,670 --> 00:47:26,820 Lakini hatimaye, wakati Clang ni tayari kuchukua hii ya uwakilishi wa mpango wako 741 00:47:26,820 --> 00:47:30,940 ndani ya sekunde 0 na 1s, basi hatua inayoitwa kukusanyika kinachotokea, 742 00:47:30,940 --> 00:47:33,850 na hii tena wote hutokea katika kupepesa jicho wakati wa mbio Clang. 743 00:47:33,850 --> 00:47:39,300 Sisi kuanza hapa, ni matokeo ya faili kama hii, na kisha ni waongofu kwa sekunde 0 hizi na 1s. 744 00:47:39,300 --> 00:47:42,000 Na kama unataka kwenda nyuma katika baadhi ya uhakika na kweli kuona hii katika hatua, 745 00:47:42,000 --> 00:47:48,220 kama mimi kwenda katika hello1.c-hii ni moja ya mipango ya kwanza kabisa tuliangalia - 746 00:47:48,220 --> 00:47:53,710 kawaida sisi ingekuwa kukusanya hii kwa hello1.c Clang na hii atatupa a.out. 747 00:47:53,710 --> 00:47:59,890 Kama kwa kulinganisha wewe badala kuwapa-S bendera, nini utapata ni hello1.s 748 00:47:59,890 --> 00:48:02,750 na wewe utakuwa kweli kuona lugha ya mkutano. 749 00:48:02,750 --> 00:48:05,750 >> Mimi nina kufanya hili kwa ajili ya mpango mfupi sana, lakini kama wewe kurudi nyuma kwa kinyang'anyiro 750 00:48:05,750 --> 00:48:08,740 au Kuokoa au na mpango wowote ve imeandikwa tu nje ya udadisi 751 00:48:08,740 --> 00:48:13,240 wanataka kuona nini kweli inaonekana kama, nini kweli kuwa kulishwa ndani ya CPU, 752 00:48:13,240 --> 00:48:15,700 unaweza kutumia kwamba-S bendera na Clang. 753 00:48:15,700 --> 00:48:17,770 Lakini basi mwisho, bado kuna moja gotcha. 754 00:48:17,770 --> 00:48:21,810 Hapa ni sekunde 0 na 1s kwamba kuwakilisha utekelezaji wangu wa hujambo dunia. 755 00:48:21,810 --> 00:48:25,530 Lakini mimi kutumika kazi ya mtu mwingine katika mpango wangu. 756 00:48:25,530 --> 00:48:28,710 Hivyo ingawa mchakato imekuwa mimi kuchukua hello.c, 757 00:48:28,710 --> 00:48:34,280 anapata compiled katika code mkutano, na kisha anapata wamekusanyika ndani ya sekunde 0 na 1s, 758 00:48:34,280 --> 00:48:37,460 tu sekunde 0 na 1s kwamba ni outputted katika hatua hii kwa wakati 759 00:48:37,460 --> 00:48:40,270 ni wale ambao matokeo kutoka code yangu. 760 00:48:40,270 --> 00:48:44,400 Lakini mtu ambaye aliandika printf, wao compiled kanuni zao miaka 20 iliyopita 761 00:48:44,400 --> 00:48:47,000 na ni sasa imewekwa mahali fulani kwenye appliance, 762 00:48:47,000 --> 00:48:51,610 hivyo sisi kwa namna fulani kuwa na kuunganisha sekunde 0 wake au wake na 1s kwa sekunde 0 yangu na 1s, 763 00:48:51,610 --> 00:48:56,160 na kwamba inatuleta hatua 4 na mwisho wa kuandaa, unaojulikana kama kuunganisha. 764 00:48:56,160 --> 00:48:58,680 Hivyo upande wa mkono wa kushoto tuna exact picha kama kabla ya: 765 00:48:58,680 --> 00:49:02,580 hello.c inakuwa mkutano code inakuwa sekunde 0 na 1s. 766 00:49:02,580 --> 00:49:05,960 Lakini kumbuka kwamba mimi kutumika kiwango I / O maktaba katika code yangu, 767 00:49:05,960 --> 00:49:10,350 na kwamba maana mahali fulani kwenye kompyuta kuna faili inayoitwa stdio.c 768 00:49:10,350 --> 00:49:13,980 au angalau version compiled yake kwa sababu mtu baadhi ya miaka iliyopita 769 00:49:13,980 --> 00:49:18,530 compiled stdio.c katika kanuni mkutano na kisha rundo zima la sekunde 0 na 1s. 770 00:49:18,530 --> 00:49:21,130 Hii ni nini inayojulikana kama tuli au maktaba ya nguvu. 771 00:49:21,130 --> 00:49:23,350 Ni baadhi ya faili wamekaa mahali fulani katika appliance. 772 00:49:23,350 --> 00:49:28,710 >> Lakini mwishowe, nina kuchukua sekunde 0 yangu na 1s na kwamba ni mtu sekunde 0 na 1s 773 00:49:28,710 --> 00:49:32,760 na kwa namna fulani kuwaunganisha pamoja, literally kuchanganya wale sekunde 0 na 1s 774 00:49:32,760 --> 00:49:37,900 ndani ya faili moja iitwayo a.out au hello1 au chochote mimi kuitwa mpango wangu 775 00:49:37,900 --> 00:49:43,320 ili matokeo ya mwisho ina wote wa 1s na sekunde 0 kwamba lazima kutunga mpango wangu. 776 00:49:43,320 --> 00:49:45,660 Hivyo wakati huu wote hii muhula wakati tumekuwa kutumia Clang 777 00:49:45,660 --> 00:49:48,750 na hata hivi karibuni zaidi mbio kufanya ili kuendesha Clang, 778 00:49:48,750 --> 00:49:53,580 hatua zote hizi zimekuwa zikijitokeza aina ya mara lakini sana kwa makusudi. 779 00:49:53,580 --> 00:49:57,830 Na hivyo kama wewe kuendelea katika sayansi ya kompyuta, yaani CS61, 780 00:49:57,830 --> 00:50:00,850 hii ni safu kwamba utasikia kuendelea peel nyuma mbali huko 781 00:50:00,850 --> 00:50:06,980 kuzungumza juu ya ufanisi, matokeo ya usalama, na kama ya maelezo haya chini ya kiwango. 782 00:50:06,980 --> 00:50:09,220 Lakini pamoja na kwamba, sisi ni kuhusu kuondoka C nyuma. 783 00:50:09,220 --> 00:50:11,420 Hebu kwenda mbele na kuchukua yetu 5-dakika kuvunja sasa, 784 00:50:11,420 --> 00:50:14,190 na wakati sisi kurudi: Internet. 785 00:50:17,280 --> 00:50:19,170 Wote haki. Sisi ni nyuma. 786 00:50:19,170 --> 00:50:23,590 Sasa tunaanza kuangalia wetu siyo tu katika HTML kwa sababu, kama utaona, 787 00:50:23,590 --> 00:50:26,050 HTML yenyewe ni kweli pretty rahisi 788 00:50:26,050 --> 00:50:29,270 lakini kwa kweli katika programu mtandao kwa ujumla zaidi, mitandao kwa ujumla zaidi, 789 00:50:29,270 --> 00:50:31,770 na jinsi Teknolojia zote hizi kuja pamoja 790 00:50:31,770 --> 00:50:35,400 kuruhusu sisi kujenga mipango kiasi kisasa zaidi atop Internet 791 00:50:35,400 --> 00:50:38,690 kuliko hivi sasa tumekuwa na uwezo wa katika madirisha haya nyeusi na nyeupe. 792 00:50:38,690 --> 00:50:42,140 Hakika, katika hatua hii katika muhula ingawa sisi kutumia kiasi kidogo wakati 793 00:50:42,140 --> 00:50:46,200 juu ya PHP, HTML, CSS, JavaScript, SQL na zaidi, 794 00:50:46,200 --> 00:50:48,480 wanafunzi wengi wanaishia kufanya miradi ya mwisho kwamba ni mtandao msingi 795 00:50:48,480 --> 00:50:51,230 kwa sababu kama utaona, background sasa una katika C 796 00:50:51,230 --> 00:50:54,450 ni mengi sana zinazotumika kwa lugha hizi ngazi ya juu. 797 00:50:54,450 --> 00:50:56,800 >> Na kama wewe kuanza kufikiri juu ya mradi wako wa mwisho, 798 00:50:56,800 --> 00:50:59,940 ambayo, kiasi kama Tatizo Set 0, ambapo walikuwa na moyo 799 00:50:59,940 --> 00:51:02,160 kufanya zaidi kitu chochote cha riba na wewe katika Scratch, 800 00:51:02,160 --> 00:51:05,790 mradi wa mwisho ni nafasi yako kuchukua maarifa yako newfound na savvy na C 801 00:51:05,790 --> 00:51:09,850 au PHP au JavaScript au kama nje kwa spin 802 00:51:09,850 --> 00:51:12,330 na kujenga kipande yako mwenyewe sana ya programu kwa ajili ya dunia ya kuona. 803 00:51:12,330 --> 00:51:17,770 Na uzao wewe na mawazo, tunajua kwamba wewe unaweza kichwa hapa, projects.cs50.net. 804 00:51:17,770 --> 00:51:21,800 Kila mwaka, sisi kukusanya mawazo kutoka Kitivo na wafanyakazi na vikundi mwanafunzi juu ya chuo 805 00:51:21,800 --> 00:51:27,330 tu ya kuwasilisha mawazo yao kwa ajili ya mambo ya kuvutia ambayo inaweza kutatuliwa kwa kutumia kompyuta, 806 00:51:27,330 --> 00:51:29,860 kutumia tovuti, kwa kutumia programu. 807 00:51:29,860 --> 00:51:32,360 Hivyo kama wewe ni zinakabiliwa na kuja na wazo yako mwenyewe, 808 00:51:32,360 --> 00:51:35,790 kwa njia zote kitabu kupitia mawazo kuna kutoka mwaka huu na mwisho. 809 00:51:35,790 --> 00:51:39,990 Ni sawa kikamilifu kukabiliana na mradi ambayo imekuwa kukabiliana kabla. 810 00:51:39,990 --> 00:51:44,540 Tumeona programu nyingi kwa ajili ya kuona hali ya kufulia ya chuo, 811 00:51:44,540 --> 00:51:47,000 wengi Apps kwa navigering ukumbi dining menu, 812 00:51:47,000 --> 00:51:49,540 wengi Apps kwa navigering catalog kozi na kama. 813 00:51:49,540 --> 00:51:53,680 Na hakika, katika hotuba ya baadaye na katika semina ya baadaye, 814 00:51:53,680 --> 00:51:57,750 sisi kuanzisha wewe APIs baadhi hadharani, wote inauzwa 815 00:51:57,750 --> 00:52:02,520 kama vile hapa zinapatikana kutoka CS50 juu ya chuo ili kufikia data 816 00:52:02,520 --> 00:52:04,910 na wanaweza kufanya mambo ya kuvutia na hayo. 817 00:52:04,910 --> 00:52:09,380 Hivyo zaidi katika miradi ya mwisho katika siku chache wakati sisi kutolewa vipimo, 818 00:52:09,380 --> 00:52:12,990 lakini kwa sasa, kujua kwamba unaweza kufanya kazi solo au na marafiki moja au mbili 819 00:52:12,990 --> 00:52:16,010 juu zaidi mradi wowote wa maslahi na wewe. 820 00:52:16,010 --> 00:52:18,080 Internet. 821 00:52:18,080 --> 00:52:22,300 Wewe kwenda mbele na kujiondoa Laptop yako, wewe kwenda facebook.com kwa mara ya kwanza, 822 00:52:22,300 --> 00:52:27,020 wasijazipokea watumiaji katika hivi karibuni, na hit Enter. Nini hasa hutokea? 823 00:52:27,020 --> 00:52:30,150 >> Wakati wewe hit Enter kwenye kompyuta yako, rundo zima la hatua 824 00:52:30,150 --> 00:52:32,600 kuanza aina ya magically kinachotokea. 825 00:52:32,600 --> 00:52:35,960 Hivyo hapa kwenye server kushoto, mtandao kama Facebook ni hapa juu ya haki, 826 00:52:35,960 --> 00:52:42,500 na kwa namna fulani unatumia hii lugha inayoitwa HTTP, HyperText Transfer itifaki. 827 00:52:42,500 --> 00:52:46,770 HTTP ni si lugha ya programu. Ni zaidi ya itifaki. 828 00:52:46,770 --> 00:52:52,310 Ni seti ya mikataba ya kwamba mtandao browsers na servrar mtandao kutumia wakati intercommunicating. 829 00:52:52,310 --> 00:52:54,360 Na nini maana ya hii ni kama ifuatavyo. 830 00:52:54,360 --> 00:52:56,790 Mengi kama katika ulimwengu wa kweli, tuna mikataba haya 831 00:52:56,790 --> 00:53:00,140 ambapo kama wewe kukutana na baadhi ya binadamu kwa mara ya kwanza, kama huna akili humoring yangu hapa, 832 00:53:00,140 --> 00:53:03,980 Nipate kuja kwenu, kusema, "Hi, jina langu ni David." >> Hi, Daudi. Jina langu ni Sammy. 833 00:53:03,980 --> 00:53:05,770 "Hi, Daudi. Jina langu ni Sammy." 834 00:53:05,770 --> 00:53:08,310 Hivyo sasa sisi tu kushiriki katika aina hii ya itifaki silly binadamu 835 00:53:08,310 --> 00:53:12,200 ambapo mimi wameanzisha itifaki, Sammy ina alijibu, 836 00:53:12,200 --> 00:53:15,060 tumekuwa unaotikiswa mikono, na manunuzi ni kamili. 837 00:53:15,060 --> 00:53:18,260 HTTP ni sawa sana katika roho. 838 00:53:18,260 --> 00:53:23,350 Wakati mtandao wako browser maombi www.facebook.com, 839 00:53:23,350 --> 00:53:27,020 nini browser yako ni kweli kufanya ni kupanua mkono wake, ili kuzungumza, 840 00:53:27,020 --> 00:53:29,960 server na ni kupeleka ujumbe. 841 00:53:29,960 --> 00:53:34,220 Na ujumbe kuwa ni kawaida kitu kama kupata - unataka nini ili kupata? - 842 00:53:34,220 --> 00:53:38,740 kupata yangu ukurasa wa nyumbani, ambayo ni kawaida ulionyehsa kwa kufyeka moja katika mwisho wa URL. 843 00:53:38,740 --> 00:53:43,790 Na hivyo tu kujua nini lugha nina kuzungumza, mimi browser naenda kukuambia 844 00:53:43,790 --> 00:53:46,930 kwamba mimi nina akizungumza HTTP version 1.1, 845 00:53:46,930 --> 00:53:51,980 Na pia kwa hatua nzuri, mimi naenda kukuambia kwamba jeshi kwamba mimi nataka ukurasa wa nyumbani wa 846 00:53:51,980 --> 00:53:54,120 ni facebook.com. 847 00:53:54,120 --> 00:53:57,730 Kawaida, kivinjari, unbeknownst na wewe, mwanadamu, 848 00:53:57,730 --> 00:54:03,350 hutuma ujumbe huu katika mtandao wakati wewe tu aina www.facebook.com, 849 00:54:03,350 --> 00:54:05,370 >> Kuingia, katika browser yako. 850 00:54:05,370 --> 00:54:07,300 Na nini Facebook kujibu kwa? 851 00:54:07,300 --> 00:54:12,540 Ni anajibu na baadhi ya maelezo sawa-kuangalia cryptic lakini pia mengi zaidi. 852 00:54:12,540 --> 00:54:14,310 Hebu kwenda mbele nyumbani ukurasa wa Facebook hapa. 853 00:54:14,310 --> 00:54:17,480 Hii ni screen kwamba wengi wetu pengine kamwe kuona kama wewe kukaa watumiaji katika muda wote, 854 00:54:17,480 --> 00:54:19,830 lakini hii ni kweli nyumba zao ukurasa. 855 00:54:19,830 --> 00:54:24,150 Kama sisi kufanya hili katika Chrome, taarifa kwamba unaweza kuvuta up haya menus muktadha kidogo. 856 00:54:24,150 --> 00:54:26,980 Kutumia Chrome, iwe juu Mac OS, Windows, Linux, au kama, 857 00:54:26,980 --> 00:54:31,840 kama wewe Udhibiti click au click kushoto, unaweza kawaida kuvuta up menu kwamba inaonekana kama hii, 858 00:54:31,840 --> 00:54:35,870 ambapo chaguzi chache wakisubiri, moja ambayo ni View Kwanza Chanzo. 859 00:54:35,870 --> 00:54:39,920 Unaweza pia kawaida kupata mambo haya kwa kwenda menu View na poking kote. 860 00:54:39,920 --> 00:54:42,750 Kwa mfano, hapa chini View, Developer ni kitu kimoja. 861 00:54:42,750 --> 00:54:45,780 Mimi nina kwenda mbele na kuangalia View Chanzo Kwanza. 862 00:54:45,780 --> 00:54:50,800 Nini utaona ni HTML kwamba Marko ameandika kuwakilisha facebook.com. 863 00:54:50,800 --> 00:54:55,910 Ni fujo kamili hapa, lakini tutaweza kuona kwamba hii hufanya kidogo maana zaidi kabla ya muda mrefu. 864 00:54:55,910 --> 00:54:59,840 Lakini kuna baadhi ya mifumo hapa. Hebu kitabu chini stuff kama hii. 865 00:54:59,840 --> 00:55:05,730 Hii ni ngumu kwa binadamu kusoma, lakini taarifa kwamba kuna muundo huu wa mabano angled 866 00:55:05,730 --> 00:55:10,360 na maneno kama chaguo, maneno kama thamani, masharti baadhi alinukuliwa. 867 00:55:10,360 --> 00:55:15,660 Hii ni wapi, wakati saini up kwa mara ya kwanza, maalum kile yako ya kuzaliwa ni mwaka. 868 00:55:15,660 --> 00:55:19,020 Menyu kunjuzi ya miaka ya kuzaliwa kwa namna fulani encoded hapa 869 00:55:19,020 --> 00:55:23,870 katika hii lugha inayoitwa HTML, HyperText Markup lugha. 870 00:55:23,870 --> 00:55:27,730 Kwa maneno mengine, wakati browser yako maombi ya ukurasa wa mtandao, 871 00:55:27,730 --> 00:55:30,610 inazungumzia hii mkataba kuitwa HTTP. 872 00:55:30,610 --> 00:55:35,170 Lakini ni nini facebook.com kujibu ombi kwamba pamoja na? 873 00:55:35,170 --> 00:55:38,260 >> Ni anajibu na baadhi ya ujumbe huu cryptic, kama tutaweza kuona katika wakati huu. 874 00:55:38,260 --> 00:55:43,760 Lakini zaidi ya majibu yake ni katika aina ya HTML, HyperText Markup lugha. 875 00:55:43,760 --> 00:55:47,170 Hiyo ni lugha halisi ambayo ukurasa mtandao yaliyoandikwa. 876 00:55:47,170 --> 00:55:52,030 Na nini kivinjari kweli haina kisha ni, juu ya ofisi ya kitu ambacho inaonekana kama hii, 877 00:55:52,030 --> 00:55:57,120 husoma juu hadi chini, kushoto na kulia, na wakati wowote anaona moja ya mabano haya angled 878 00:55:57,120 --> 00:56:03,370 ikifuatiwa na Keyword kama chaguo, ni maonyesho ya kwamba lugha ghafi katika njia sahihi. 879 00:56:03,370 --> 00:56:06,820 Katika kesi hii, itakuwa kuonyesha drop-down menu ya miaka. 880 00:56:06,820 --> 00:56:09,240 Lakini tena, hii ni fujo kamili ya kuangalia. 881 00:56:09,240 --> 00:56:16,630 Hii ni kwa sababu si Facebook watengenezaji yatangaza 0 5 kwa ajili ya mtindo, kwa mfano. 882 00:56:16,630 --> 00:56:20,190 Hii ni kwa sababu wengi wa kificho kwamba wao kuandika ni, kwa kweli, imeandikwa uzuri, 883 00:56:20,190 --> 00:56:22,450 vizuri maoni, nicely indented, na kama, 884 00:56:22,450 --> 00:56:26,080 lakini wa mashine ya shaka, kompyuta, browsers kweli si kutoa damn 885 00:56:26,080 --> 00:56:27,890 kama code yako ni vizuri-styled. 886 00:56:27,890 --> 00:56:33,100 Na kwa kweli, ni kabisa fujo kwa hit muhimu tab wale mara zote 887 00:56:33,100 --> 00:56:37,650 na kuweka maoni yote katika code yako na kuchagua kweli maelezo majina variable 888 00:56:37,650 --> 00:56:42,340 kwa sababu kama browser hajali, kila unachokifanya mwisho wa siku ni kupoteza bytes. 889 00:56:42,340 --> 00:56:46,660 >> Hivyo zinageuka kile wengi tovuti kufanya ni hata kama chanzo code kwa facebook.com, 890 00:56:46,660 --> 00:56:49,550 kwa cs50.net na wote wa tovuti hizo nyingine kwenye mtandao 891 00:56:49,550 --> 00:56:53,730 ni kawaida vizuri imeandikwa na vizuri maoni na nicely indented na kama, 892 00:56:53,730 --> 00:56:59,270 kawaida kabla ya tovuti ni kuweka kwenye mtandao, code ni minified, 893 00:56:59,270 --> 00:57:02,970 ambapo HTML na CSS - kitu kingine tutaweza kuona hivi karibuni - 894 00:57:02,970 --> 00:57:05,960 Code JavaScript tutaweza kuona hivi karibuni inasukumwa, 895 00:57:05,960 --> 00:57:09,250 ambapo kwa muda mrefu majina variable kuwa X na Y na Z, 896 00:57:09,250 --> 00:57:13,900 na yote ya kwamba whitespace kwamba inafanya kila kitu ili kuangalia ni someka wote kutupwa mbali, 897 00:57:13,900 --> 00:57:17,700 kwa sababu kama wewe kufikiri juu yake kwa njia hii, Facebook anapata ukurasa bilioni hits siku - 898 00:57:17,700 --> 00:57:21,670 kitu mambo kama hayo - hivyo nini kama programu tu kuwa anal 899 00:57:21,670 --> 00:57:26,660 hit bar nafasi moja ya ziada wakati tu Indent baadhi mstari wa kanuni milele hivyo zaidi? 900 00:57:26,660 --> 00:57:29,500 Nini maana kama Facebook huhifadhi kwamba whitespace 901 00:57:29,500 --> 00:57:32,880 katika yote ya ka wao kutuma nyuma kwa watu juu ya mtandao? 902 00:57:32,880 --> 00:57:36,400 Kupiga nafasi bar mara moja inakupa Byte ziada katika faili yako. 903 00:57:36,400 --> 00:57:39,730 Na kama watu bilioni kisha kuendelea na kupakua ukurasa wa nyumbani siku hiyo, 904 00:57:39,730 --> 00:57:42,060 kiasi gani zaidi data kuwa wewe zinaa juu ya mtandao? 905 00:57:42,060 --> 00:57:45,200 gigabyte kwa sababu si nzuri. 906 00:57:45,200 --> 00:57:48,510 Na nafasi, kwa mengi ya Nje hii si suala vile scalable, 907 00:57:48,510 --> 00:57:51,030 lakini kwa Facebook, kwa ajili ya Google, kwa baadhi ya tovuti maarufu zaidi 908 00:57:51,030 --> 00:57:54,860 kuna motisha kubwa kifedha kufanya code yako kuangalia kama fujo 909 00:57:54,860 --> 00:57:58,980 hivyo kwamba wewe ni kutumia kama ka machache iwezekanavyo kwa kuongeza kisha compressing ni 910 00:57:58,980 --> 00:58:01,500 kutumia kitu kama zip, algorithm kuitwa gzip, 911 00:58:01,500 --> 00:58:04,250 kwamba browser gani kwa ajili ya wewe moja kwa moja. Lakini hii ni kubwa. 912 00:58:04,250 --> 00:58:08,060 Hatutawahi kujifunza chochote kuhusu tovuti za watu wengine na jinsi ya kubuni mtandao kurasa 913 00:58:08,060 --> 00:58:09,680 kama tuna kuangalia ni kama hii. 914 00:58:09,680 --> 00:58:13,620 >> Hivyo bahati nzuri, kama browsers Chrome na IE na Firefox siku hizi 915 00:58:13,620 --> 00:58:16,450 kawaida kuja na zana developer kujengwa katika. 916 00:58:16,450 --> 00:58:21,730 Kwa kweli, kama mimi kwenda chini hapa Kagua Element au kama mimi kwenda View, Developer, 917 00:58:21,730 --> 00:58:25,220 na kwenda Vyombo vya Developer waziwazi, 918 00:58:25,220 --> 00:58:27,640 dirisha hili chini ya screen yangu sasa pops up. 919 00:58:27,640 --> 00:58:31,230 Ni kidogo vitisho kwa sababu kwanza kuna mengi ya tabo unfamiliar hapa, 920 00:58:31,230 --> 00:58:34,510 lakini kama mimi bonyeza Elements njia yote katika kushoto chini, 921 00:58:34,510 --> 00:58:38,810 Chrome ni wazi pretty smart. Ni anajua jinsi ya kutafsiri yote ya kanuni hii. 922 00:58:38,810 --> 00:58:42,320 Na hivyo kile Chrome gani ni safisha up wote wa HTML Facebook. 923 00:58:42,320 --> 00:58:45,680 Hata ingawa sio whitespace huko, kuna si indentation huko, 924 00:58:45,680 --> 00:58:51,120 sasa ona kwamba naweza kuanza navigate ukurasa huu mtandao wote zaidi hierarchically. 925 00:58:51,120 --> 00:58:56,910 Ni zinageuka kuwa kila ukurasa wa mtandao yaliyoandikwa katika lugha inayoitwa HTML5 lazima kuanza na hii, 926 00:58:56,910 --> 00:59:03,980 tamko hili DOCTYPE, hivyo kusema: 927 00:59:03,980 --> 00:59:07,840 Ni aina ya mwanga na kijivu huko, lakini hiyo ni mstari wa kwanza kabisa wa kificho katika faili hili, 928 00:59:07,840 --> 00:59:12,080 na kwamba tu anamwambia browser, "Hey, inakuja baadhi HTML5 inakuja ukurasa wa mtandao.". 929 00:59:12,080 --> 00:59:18,490 kwanza wazi bracket zaidi ya kuwa hutokea kwa kuwa jambo hili, wazi bracket HTML tag, 930 00:59:18,490 --> 00:59:22,320 na kisha kama mimi kupiga mbizi katika undani - haya ni mishale kabisa maana; 931 00:59:22,320 --> 00:59:25,140 wao ni kwa ajili tu ya uwasilishaji wa, wao si kweli katika faili - 932 00:59:25,140 --> 00:59:30,300 taarifa kwamba ndani ya tag Facebook HTML, chochote huanza na bracket wazi 933 00:59:30,300 --> 00:59:32,910 na kisha ina neno inaitwa tag. 934 00:59:32,910 --> 00:59:38,610 Hivyo ndani tag HTML ni inaonekana tag kichwa na tag mwili. 935 00:59:38,610 --> 00:59:41,930 Ndani ya tag kichwa sasa ni fujo nzima kwa ajili ya Facebook 936 00:59:41,930 --> 00:59:45,620 kwa sababu wana mengi ya metadata na mambo mengine kwa ajili ya masoko na matangazo. 937 00:59:45,620 --> 00:59:50,600 >> Lakini kama sisi kitabu chini, chini, chini, chini, hebu angalia ambapo ni. Hapa ni. 938 00:59:50,600 --> 00:59:52,210 Hii ni moja angalau kiasi fulani familiar. 939 00:59:52,210 --> 00:59:55,990 hatimiliki ya nyumbani ukurasa wa Facebook, kama umewahi kuangalia katika tab katika cheo bar yako, 940 00:59:55,990 --> 00:59:59,060 ni Karibu Facebook - Ingia, Jiandikishe au Jifunze Zaidi. 941 00:59:59,060 --> 01:00:01,110 Hiyo ni nini ungependa kuona katika cheo bar Chrome, 942 01:00:01,110 --> 01:00:03,100 na kwamba ni jinsi gani kuwakilishwa katika code. 943 01:00:03,100 --> 01:00:08,090 Kama sisi kupuuza kila kitu kingine katika kichwa, wengi wa guts ya ukurasa wa mtandao ni katika mwili, 944 01:00:08,090 --> 01:00:10,940 na zinageuka kuwa code Facebook ni kwenda kuangalia zaidi tata 945 01:00:10,940 --> 01:00:14,540 kuliko wengi mambo tutaweza kuandika awali kwa sababu tu ni kuwa kujengwa kwa miaka, 946 01:00:14,540 --> 01:00:17,260 lakini kuna mengi yote ya tags script, JavaScript code, 947 01:00:17,260 --> 01:00:18,870 kwamba inafanya tovuti sana maingiliano: 948 01:00:18,870 --> 01:00:22,330 kuona updates hadhi mara kwa kutumia lugha kama JavaScript. 949 01:00:22,330 --> 01:00:25,270 Kuna kitu kinachoitwa div, ambayo ni zamu ya ukurasa. 950 01:00:25,270 --> 01:00:27,940 Lakini kabla ya sisi kupata undani kwamba, hebu jaribu kwa zoom nje 951 01:00:27,940 --> 01:00:31,920 na kuangalia toleo rahisi ya Facebook 1.0, hivyo kusema. 952 01:00:31,920 --> 01:00:34,740 Hapa ni hello, dunia ya kurasa za mtandao. 953 01:00:34,740 --> 01:00:37,370 Ina kuwa tamko DOCTYPE saa ya juu sana 954 01:00:37,370 --> 01:00:40,280 ambayo ni tofauti kidogo kutoka kila kitu kingine. 955 01:00:40,280 --> 01:00:46,130 Hakuna kitu kingine chochote sisi kuandika katika ukurasa wa mtandao ni kwenda kuanza na 01:00:48,880 na isipokuwa kwa kitu kinachoitwa maoni katika HTML. 957 01:00:48,880 --> 01:00:53,000 Lakini kwa sehemu kubwa, kila kitu katika ukurasa wa mtandao ni wazi bracket, Keyword, karibu bracket. 958 01:00:53,000 --> 01:00:56,220 >> Katika kesi hii unaweza kuona rahisi ya kurasa za mtandao iwezekanavyo. 959 01:00:56,220 --> 01:01:00,260 Tag HTML ina tag kichwa na ina tag mwili, 960 01:01:00,260 --> 01:01:04,580 lakini taarifa kwamba kuna wazo hili la kuanzia na kuacha tags. 961 01:01:04,580 --> 01:01:11,360 Hii ni tag kuanza kwa HTML, hii ni karibu au tag tag mwisho. 962 01:01:11,360 --> 01:01:15,400 Ona kwamba wao ni aina ya kinyume katika maana ya kwamba tag karibu au tag mwisho 963 01:01:15,400 --> 01:01:20,030 ina hii mbele kufyeka ndani ya yenyewe. 964 01:01:20,030 --> 01:01:23,540 Wakati huo huo, kuna wazi kichwa tag hapa na karibu tag kichwa hapa. 965 01:01:23,540 --> 01:01:26,880 >> Kuna cheo wazi na karibu tag cheo hapa. 966 01:01:26,880 --> 01:01:29,850 ukweli kwamba mimi ve kuweka cheo juu ya mstari mmoja, rena holela. 967 01:01:29,850 --> 01:01:33,760 Ni tu inaonekana kama ingekuwa nicely fit kwenye mstari mmoja, hivyo mimi haikujali kupiga Ingiza mara kadhaa. 968 01:01:33,760 --> 01:01:38,200 Wakati huo huo, mwili sikuwa Indent tu kuwa milele hivyo wazi. 969 01:01:38,200 --> 01:01:41,050 Ona kwamba HTML ni lugha pretty bubu. 970 01:01:41,050 --> 01:01:43,410 Kwa kweli, nyuma katika siku kabla kulikuwa WYSIWYG wahariri 971 01:01:43,410 --> 01:01:46,770 na Microsoft Word ambapo unaweza kusema, "Fanya huu ujasiri, italics kufanya hili," 972 01:01:46,770 --> 01:01:50,850 wewe ingekuwa kweli aina amri kidogo katika insha 20 + miaka iliyopita 973 01:01:50,850 --> 01:01:55,740 ambapo wewe kusema, "Anza kufanya Nakala hii koze Acha kufanya Nakala hii koze.". 974 01:01:55,740 --> 01:01:59,010 "Kuanza kufanya italics hii Nakala Acha kufanya italics hii maandishi.". 975 01:01:59,010 --> 01:02:01,850 >> Hiyo ni nini HTML au lugha yoyote ya kuashiria ni. 976 01:02:01,850 --> 01:02:05,530 Hii tag kwanza anasema, "Hey, browser. Inakuja baadhi HTML." 977 01:02:05,530 --> 01:02:09,880 tag ijayo anasema, "Hey, browser. inakuja kichwa, header wa mtandao ukurasa wangu." 978 01:02:09,880 --> 01:02:11,650 "Hey, browser. Inakuja cheo." 979 01:02:11,650 --> 01:02:15,880 Na kisha zaidi ya hapa, "Hey, browser. Hiyo ni kwa cheo." 980 01:02:15,880 --> 01:02:20,000 Hivyo hii ni jinsi browser anajua tena kuonyesha wahusika zaidi ya hello, dunia 981 01:02:20,000 --> 01:02:21,860 katika title bar. 982 01:02:21,860 --> 01:02:23,640 Wakati huo huo, hii anasema, "Hiyo ni kwa kichwa." 983 01:02:23,640 --> 01:02:28,340 Hii inasema, "Hiyo inakuja mwili Hapa ni mwili halisi." - Literally, maneno hello, ulimwengu. 984 01:02:28,340 --> 01:02:33,190 Na hii anasema hapa, "Hiyo ni kwa ajili ya mwili Hiyo ni kwa HTML.". 985 01:02:33,190 --> 01:02:34,640 Hivyo browsers ni pretty bubu. 986 01:02:34,640 --> 01:02:39,920 Wao tu kusoma hii mambo juu hadi chini, kushoto na kulia, na kufanya nini hasa wanaambiwa kufanya. 987 01:02:39,920 --> 01:02:41,860 Hebu kweli kufanya mfano kidogo hapa. 988 01:02:41,860 --> 01:02:46,240 Hebu kufungua rahisi ya programu juu ya Mac yangu hapa, yaani TextEdit. 989 01:02:46,240 --> 01:02:48,220 On Windows unaweza kutumia Notepad.exe. 990 01:02:48,220 --> 01:02:50,520 Lakini haya ni yote unahitaji kuanza kufanya kurasa za mtandao. 991 01:02:50,520 --> 01:02:53,730 Mimi nina kwenda mbele na nakala tu na kuweka hii code katika faili hii. 992 01:02:53,730 --> 01:02:57,210 Mimi nina kwenda mbele na kuokoa ni kwenye desktop yangu, 993 01:02:57,210 --> 01:03:01,220 na mimi nina kwenda kuokoa hii kama hello.html, 994 01:03:01,220 --> 01:03:03,840 na sasa faili ni jina hello.html. 995 01:03:03,840 --> 01:03:05,690 Hapa ni kwenye desktop yangu. 996 01:03:05,690 --> 01:03:11,130 Hebu sasa kwenda katika browser na Drag faili katika browser. 997 01:03:11,130 --> 01:03:14,060 Na voilà, hapa ni mtandao yangu ya kwanza kabisa ya ukurasa. 998 01:03:14,060 --> 01:03:17,340 Ona kwamba jina la tab ni hello, dunia kama kwa tag cheo, 999 01:03:17,340 --> 01:03:20,040 na taarifa kwamba hello, dunia ni mwili wa mtandao ukurasa wangu, 1000 01:03:20,040 --> 01:03:22,190 na woo-hoo, mimi niko kwenye mtandao. 1001 01:03:22,190 --> 01:03:24,700 >> Mimi si kweli, haki, kwa sababu faili hii si kwenye mtandao. 1002 01:03:24,700 --> 01:03:28,330 Hutokea kwa kuwa kwenye gari yangu mitaa bidii katika kwamba njia fulani. 1003 01:03:28,330 --> 01:03:32,720 Lakini wazo ni sawa. Wote sisi sasa haja ni server mtandao ambayo kwa upload. 1004 01:03:32,720 --> 01:03:37,410 Lakini kwanza hebu kweli kuanzisha kidogo zaidi utata na zaidi kidogo stylization. 1005 01:03:37,410 --> 01:03:39,890 Hii ni rahisi, kama boring, mtandao ukurasa. 1006 01:03:39,890 --> 01:03:41,990 Ni zinageuka kuna aina nyingine ya vitambulisho tunaweza kutumia. 1007 01:03:41,990 --> 01:03:45,530 Kwa mfano, hapa katika njano nimekuwa ilianzisha 2 tags mpya. 1008 01:03:45,530 --> 01:03:49,630 Sisi si kucheza sana na leo hii, lakini taarifa kwamba tag kiungo 1009 01:03:49,630 --> 01:03:52,520 namna fulani inaonekana tofauti na kila kitu kingine. 1010 01:03:52,520 --> 01:03:55,370 tag kiungo inachukua kile kinachojulikana sifa, 1011 01:03:55,370 --> 01:03:59,770 na sifa ni kitu ambacho hugeuza tabia ya tag. 1012 01:03:59,770 --> 01:04:03,840 Katika kesi hii hii si chaguo bora ya majina, kiungo, kwa sababu ni aina ya maana, 1013 01:04:03,840 --> 01:04:11,590 lakini hii tag kiungo anasema, kimsingi, ni pamoja na faili inayoitwa styles.css ndani ya mtandao ukurasa wangu. 1014 01:04:11,590 --> 01:04:15,400 Unaweza kufikiri ya hii kama sawa na C ya # ni pamoja na maelekezo. 1015 01:04:15,400 --> 01:04:19,650 Styles.css ni akimaanisha lugha tofauti kabisa kwamba sisi si kucheza kwa leo, 1016 01:04:19,650 --> 01:04:23,790 lakini ni kwa aesthetics: font ukubwa, rangi, padding, indentation, gharama za uzalishaji, 1017 01:04:23,790 --> 01:04:26,040 na wote wa aina hiyo ya undani aesthetics. 1018 01:04:26,040 --> 01:04:28,820 Wakati huo huo, tag script ni functionally sawa, 1019 01:04:28,820 --> 01:04:33,140 lakini badala ya ni pamoja na CSS, kwamba lugha, ni pamoja na lugha nyingine, JavaScript. 1020 01:04:33,140 --> 01:04:37,810 Hivyo kwa maneno mengine, na vitambulisho hizi 2 mimi hatimaye kuwa na uwezo wa kuandika mtandao wangu mwenyewe ukurasa 1021 01:04:37,810 --> 01:04:41,490 lakini pia kuvuta katika kificho kwamba mimi au mtu mwingine ameandika 1022 01:04:41,490 --> 01:04:44,350 ili tuweze kusimama juu ya mabega ya watu wengine, tunaweza mazoezi ya design nzuri, 1023 01:04:44,350 --> 01:04:46,120 factoring nje code ya kawaida. 1024 01:04:46,120 --> 01:04:49,090 Kama mimi nimepata 10 kurasa za mtandao tofauti, hii ina maana kwamba baadhi ya aesthetics yangu 1025 01:04:49,090 --> 01:04:52,490 inaweza kuwa zitawekwa nje, kiasi kama # ni pamoja na, ndani ya faili tofauti. 1026 01:04:52,490 --> 01:04:54,420 Hivyo sisi ni kupata huko. 1027 01:04:54,420 --> 01:04:57,180 Lakini hebu kweli kwanza kufanya kitu zaidi ya kuvutia na faili hii. 1028 01:04:57,180 --> 01:05:01,110 >> Tena, hii ni tu TextEdit. Mimi si kitaalam juu ya Internet bado, lakini tutaweza kupata huko. 1029 01:05:01,110 --> 01:05:04,910 Ningependa kufanya hello, ulimwengu kidogo bolder kuliko ilivyo. 1030 01:05:04,910 --> 01:05:10,890 Hivyo hello, hebu kiholela kusema kwa ujasiri. 1031 01:05:10,890 --> 01:05:15,910 Tena, hadithi ni sawa: hello, comma, kuanza kufanya hii ujasiri, 1032 01:05:15,910 --> 01:05:19,730 basi dunia anapata kuchapishwa katika ujasiri, na hii ina maana kuacha uchapishaji hii koze. 1033 01:05:19,730 --> 01:05:24,020 Hebu kwenda mbele na kuokoa faili yangu, kurudi nyuma na Chrome, mimi itabidi zoom katika tu ili tuweze kuona ni bora zaidi, 1034 01:05:24,020 --> 01:05:27,870 na Reload, na utaona dunia kwamba ni sasa katika koze. 1035 01:05:27,870 --> 01:05:31,810 Mtandao ni wote kuhusu viungo, hivyo hebu kwenda mbele na kufanya hili: 1036 01:05:31,810 --> 01:05:38,550 tovuti yangu favorite ni, hebu sema, youtube.com. 1037 01:05:38,550 --> 01:05:43,810 Ila, Reload. Sawa. Kuna matatizo ya wanandoa sasa badala hideousness wa tovuti. 1038 01:05:43,810 --> 01:05:47,310 1, nina uhakika pretty mimi hit Enter hapa. Na mimi. 1039 01:05:47,310 --> 01:05:51,590 Mimi si tu hit Enter, mimi pia indented, kufanya mazoezi nini tumekuwa kuhubiri kuhusu mtindo, 1040 01:05:51,590 --> 01:05:54,930 lakini yangu ni haki ya karibu na ulimwengu. 1041 01:05:54,930 --> 01:05:58,410 Hivyo kwa nini hii? Browsers kufanya kile tu wewe kuwaambia cha kufanya. 1042 01:05:58,410 --> 01:06:04,010 Sikumwambia browser, "Break mistari hapa Ingiza. Aya kuvunja hapa." 1043 01:06:04,010 --> 01:06:07,820 Hivyo browser, haijalishi kama mimi hit Kurudi mara 30, 1044 01:06:07,820 --> 01:06:10,820 ni bado kwenda kuweka sahihi yangu ijayo kwa ulimwengu. 1045 01:06:10,820 --> 01:06:15,930 Nini mimi kwa kweli kufanya hapa ni kusema kitu kama
, ingiza kuvunja line. 1046 01:06:15,930 --> 01:06:17,940 >> Na kweli, kuvunja line ni aina ya kitu weird 1047 01:06:17,940 --> 01:06:21,650 sababu huwezi kweli kuanza kuhamia mstari mwingine, kisha kufanya kitu, 1048 01:06:21,650 --> 01:06:25,380 na kisha kuacha kuhamia mstari mpya. Ni aina ya operesheni atomic. 1049 01:06:25,380 --> 01:06:28,140 Wewe ama kufanya hivyo au haujui. Wewe hit Enter au huna. 1050 01:06:28,140 --> 01:06:33,390 Hivyo br ni kidogo kidogo ya tag tofauti, na hivyo mimi unahitaji aina ya wote wazi na karibu ni 1051 01:06:33,390 --> 01:06:35,230 wote kwa mara moja. 1052 01:06:35,230 --> 01:06:37,500 syntax kwa kuwa ni hii. 1053 01:06:37,500 --> 01:06:41,760 Kitaalam, unaweza kufanya kitu kama hiki katika matoleo baadhi ya HTML, 1054 01:06:41,760 --> 01:06:45,600 lakini hii ni wajinga tu kwa sababu hakuna sababu ya kuanza na kuacha kitu 1055 01:06:45,600 --> 01:06:48,420 kama unaweza kufanya hivyo badala wote mara moja. 1056 01:06:48,420 --> 01:06:52,310 Kutambua HTML5 kuwa haina madhubuti zinahitaji hii slash, 1057 01:06:52,310 --> 01:06:55,410 hivyo utaona vitabu na rasilimali online kwamba hawana hiyo, 1058 01:06:55,410 --> 01:06:59,780 lakini kwa hatua nzuri hebu mazoezi ulinganifu kwamba tumekuwa kuonekana hivi sasa. 1059 01:06:59,780 --> 01:07:02,870 Hii ina maana kwamba wote tag ni kufunguliwa na imefungwa. 1060 01:07:02,870 --> 01:07:05,220 Hivyo sasa basi mimi ila faili yangu, kurudi nyuma hapa. 1061 01:07:05,220 --> 01:07:10,240 Okay, kwa hivyo ni mapya kwa kuangalia bora, isipokuwa Mtandao najua ni aina ya Clickable, 1062 01:07:10,240 --> 01:07:13,610 na bado youtube hapa haionekani kusababisha kitu chochote. 1063 01:07:13,610 --> 01:07:17,560 Hiyo ni kwa sababu hata kama inaonekana kama kiungo, browser hajui kwamba per se, 1064 01:07:17,560 --> 01:07:20,670 hivyo nina kuwaambia browser kwamba hii ni kiungo. 1065 01:07:20,670 --> 01:07:22,620 >> njia ya kufanya hili ni kwa kutumia tag nanga: 1066 01:07:22,620 --> 01:07:26,770 01:07:35,900 = "Http://www.youtube.com"> 1068 01:07:35,900 --> 01:07:38,490 na napenda hoja hii kwa mstari mpya tu hivyo ni kidogo zaidi someka, 1069 01:07:38,490 --> 01:07:40,060 na mimi itabidi shrink ukubwa font. 1070 01:07:40,060 --> 01:07:43,890 Mimi ni kufanyika bado? No Itakuja kuwa hii dichotomy. 1071 01:07:43,890 --> 01:07:46,760 Hii tag, tag nanga, haina kweli kuchukua sifa, 1072 01:07:46,760 --> 01:07:52,900 ambayo hugeuza tabia yake, na thamani ya sifa ya kuwa ni inaonekana URL YouTube. 1073 01:07:52,900 --> 01:07:56,380 Lakini taarifa dichotomy ni kwamba kwa sababu tu kwamba URL utaenda, 1074 01:07:56,380 --> 01:08:01,020 hiyo haina maana kwamba ina kuwa neno kwamba wewe ni betona na maamuzi ya kiungo. 1075 01:08:01,020 --> 01:08:03,960 Badala yake, ambayo inaweza kuwa kitu kama hiki. 1076 01:08:03,960 --> 01:08:10,870 Hivyo mimi kusema kuacha kufanya neno hili kwa kutumia hyperlink karibu nanga tag. 1077 01:08:10,870 --> 01:08:12,650 Ilani Mimi si kufanya hili. 1078 01:08:12,650 --> 01:08:15,890 1, hii ingekuwa tu ni kupoteza muda wa kila mtu na si lazima. 1079 01:08:15,890 --> 01:08:19,290 >> Kuifunga tag, wewe tu kutaja jina la tag tena. 1080 01:08:19,290 --> 01:08:21,800 Huwezi kutaja yoyote ya sifa. 1081 01:08:21,800 --> 01:08:26,189 Basi hebu kuokoa, kurudi nyuma. Okay, voilà, sasa ni rangi ya bluu na hyperlinked. 1082 01:08:26,189 --> 01:08:29,430 Kama mimi bonyeza yake, mimi kwa kweli kufanya kwenda YouTube. 1083 01:08:29,430 --> 01:08:32,529 Hivyo hata kama mtandao wangu ukurasa si juu ya Internet, ni angalau HTML, 1084 01:08:32,529 --> 01:08:37,930 na kama sisi basi Internet catch up, tunataka kweli kuishia hapa kwenye youtube.com. 1085 01:08:37,930 --> 01:08:40,670 Na naweza kurudi nyuma na hapa ni mtandao wangu ukurasa. Lakini taarifa hii. 1086 01:08:40,670 --> 01:08:43,120 Kama ve milele wamezipata spam au shambulio la hadaa, 1087 01:08:43,120 --> 01:08:45,850 sasa una uwezo baada ya dakika tano tu ya kufanya hivyo. 1088 01:08:45,850 --> 01:08:50,920 Tunaweza kwenda hapa na kufanya kitu kama www.badguy.com 1089 01:08:50,920 --> 01:08:59,319 au chochote tovuti sketchy ni, na kisha unaweza kusema kuthibitisha akaunti yako PayPal. 1090 01:08:59,319 --> 01:09:04,840 [Kicheko] Na sasa hii ni ya kwenda kwenda badguy.com, ambayo mimi si kwenda na bonyeza 1091 01:09:04,840 --> 01:09:08,000 kwa sababu mimi sina wazo ambapo ambayo inaongoza. [Kicheko] 1092 01:09:08,000 --> 01:09:10,859 >> Lakini sisi sasa kuwa na uwezo wa kweli kuishia hapo. 1093 01:09:10,859 --> 01:09:12,640 Hivyo sisi ni kweli tu mapya scratch ya uso. 1094 01:09:12,640 --> 01:09:15,830 Sisi siyo programu per se, sisi ni kuandika ghafi lugha. 1095 01:09:15,830 --> 01:09:18,569 Lakini kwa haraka kama sisi pande zote nje ya msamiati wetu katika HTML, 1096 01:09:18,569 --> 01:09:21,520 tutaweza kuanzisha PHP, halisi ya programu ya lugha 1097 01:09:21,520 --> 01:09:26,859 ambayo itaruhusu sisi kuzalisha HTML moja kwa moja, kuzalisha CSS moja kwa moja, 1098 01:09:26,859 --> 01:09:29,430 ili tuweze kuanza Jumatano kutekeleza, kusema, 1099 01:09:29,430 --> 01:09:31,700 tafuta injini yetu wenyewe na zaidi. 1100 01:09:31,700 --> 01:09:34,770 Lakini zaidi juu ya kwamba katika siku kadhaa. Tutaweza kuona wewe hapo. 1101 01:09:34,870 --> 01:09:39,000 >> [CS50.TV]