SPEAKER: OK, torej, ne boste verjeli, ampak prejšnji teden, v ponedeljek, v Pierce, I je bil v kleti. Nikoli nisem šel na Pierce. In nikoli se ne bom spet nazaj, ker Pustila sem moje stvari pri miru, kot je, pet minut in nekdo Ukradel moj računalnik in moje telefon iz mojega nahrbtnika. Kar pomeni, da sem ga dobil nazaj, in nato pa manj kot teden dni kasneje Prav imaš spet ukradli. In potem je dobil vklopljen - Find My iPhone nadaljuje da bi nekoristno. Zato sem še naprej spodbujala ga ne bodo uporabili. Izkazalo se je na enkrat, in je bila v MIT, kot 15 minut kasneje, in oseba klical telefonsko številko, ki je pokazala, v mojem AT & T dnevniku klicev. Zato sem šel na spletu, ki se imenuje, da telefon številko, pa se je ravno to odzivnikom v španščini. In sem se, ker nisem slišal zanj. Torej sem imel, da bi dobili novo računalnik in telefon. Vem. Ja. Ampak, če vi želite, da v čip z mojim Računalnik sklad po tem, da je, zakaj Jaz sem te vprašal tukaj. Samo hecam. Toda to je bilo res žalostno in travmatično. Ampak to je vse, zdaj nazaj, in da je bila zato -p nastavite 8 trajalo tako dolgo, ker Nisem imel računalnik. In kdo ga je ukradel. In sem po e-pošti, sprašuje, če so bi vaš razred-p nastavite 8. Vendar pa je rekel ne. In sem si mislil, lahko dobim moj računalnik nazaj? In oni so, kot so, ne. Samo hecam. OK. To je naš končni del, in moram nekaj - imamo samo tri stvari na dnevnem redu. Bomo govorili malo O vodniku Q. Potem bomo porabili 15 minut na hladnem demo. Potem bomo vsi pravijo, Poslovite se od drugega. Ne boste res potrebujejo svoje računalnike ali pero ali papir za zapiske, ali sledite skupaj. Torej predvidevam, če imate računalnik gor, potem ste na Facebooku. Samo povem. Razen če ste izpolnite Q različna, kar je prva. Različna Q je odprt. Imeli ste e-pošto o tem. Ko je vse Q stvari predložiti konec leta, sem dobil vse Komentarji Q pri ocenah iz vsakogar , ki se odloči, da mi povratne informacije. In ko gredo, tako da boste v Q - Ne vem, če lahko to storite, Jeff, ker si študent in razširitev. Toda, ko greste v Q, če tega še niste to storiti, preden boste izbrali vaš učitelj, ki je David Malan. Moraš ga narediti. In potem si lahko izberete TFS. In si lahko izberete kar TFS, kot želite. Vendar pa obstajajo 60 izmed nas. Vam ni treba, da poberem vse. Lahko samo po mene, ali pa samo kramp nekaj drugih ljudi, če želite, da jim daje povratne informacije, kot dobro. In potem boste dobili rezultate na vseh teh različnih osi, nato pa lahko pustite jim povratne informacije. In potem, kot mesec dni kasneje, Jaz bom vse, da povratne informacije. In tako kot povratne informacije ste bili mi daje skozi semester, sem preberi vse to. In to je res koristno in pomaga mi rastejo kot učitelj in kot posameznika. Zato vas prosim, vzemite nekaj časa, da to storite. Mi smo le, da bo tu za, recimo, 30 minut. Torej, če želite, na koncu to, da traja pet minut, in samo izpolnite Q, saj ne bo več časa kot to. To bi bilo čudovito, in tudi vi dobili svoje ocene vrnil hitreje, če boste izpolnili Q. Tako je večina od vas naredil, da je pred - ali ne, približno polovica od vas so storili prej. Ampak, če ste novinec, to je tisto, kar je. To bo enaka za vse razrede. Stori to. To traja pet minut. Pa tudi, če vam je malce hudo, to ni najhujša stvar na svetu, ker sem zagotovo vzeti resno. Torej, če mi pustite smeška, Bom cenim. Ampak jaz bi tudi zelo vesel, če ti me je pustila več kot smeška. Ampak to je odvisno od vas. Ne morem vam povedati - ali je všeč veliko smeška soočajo s kapitalom D. To bi še bolje. OK, to je vse, kar imam za Q. Če Za vsa vprašanja, ki jih je mogoče vprašati jaz, ampak precej samoumevno. Samo, prosim, ga izpolnite. Jaz bi res cenim, in to pomeni, da mi veliko. OK, to je tisto, kar bomo porabili 15 minut skozi. Jaz ti bom pokazal nekaj kode. Mislim, da je res kul, in to me več vzbuja v računalništvu. Zato upam, da bo to storil enako za vse vas. Bomo odprli - in vse to Koda bom poslal, da vas kasneje. Vendar smo le, da bo odprla - Jaz sem v mojem terminalu - bomo odprli ta program imenovanega [? MySum. ?] Lahko vsi prebrali, da je ali naj bi bilo večje? Mi lahko kdo pove, kaj je ta koda bo naredil, ko sem teči, ali kaj je to Program bo naredil, ko sem teči? [? Avi,?] Kaj mislite to se dogaja, da naredim? Finish žvečenje. Ne bi smel govoriti z odprtimi usti. PUBLIKA: Ali bo kup Argumenti, našli vsoto od njih se vračajo Vsota, nato pa ga natisnete ven? Ali je potrebno v dveh argumentov, in potem pa [neslišno]. In potem se natisne karkoli so rezultati. SPEAKER: Blizu, zelo blizu. Kdo želite dodati [? kaj Avi?] rekel? Ali boste morali dati tega programa vsi argumenti v ukazni vrstici? PUBLIKA: Ne SPEAKER: Ne Kaj se zgodi, če ga ne dajo vsi argumenti v ukazni vrstici? Pravkar sem napisati dot slash MySum. PUBLIKA: 1 plus 2 je enako 3. SPEAKER: 1 plus 2 je enako 3. In bomo natisnete to. Točno tako. Videli boste, da je tiskalno f postavka na dnu. To bo izpisal A, B, in potem vsota a in b. In mislim, da si domnevati, da Vsota deluje pravilno. Dobra predpostavka. OK, in kaj se zgodi, če da ga kaj argument? [? Manu? ?] PUBLIKA: To bomo dodali karkoli Prvi argument je, da b. Ali 2, žal. SPEAKER: Pravica do 2. Ali kdo ve, kaj strtol počne? To je v bistvu atoi. Atoi je pravzaprav fancy verzija - ali enostavnejša različica strtol. Ampak to dejansko uporablja strtol. In sem ugotovil, da je, ker sem si želel nekaj podobnega atoi, in potem, ko sem ni atoi, sem prebral tukaj. In sem našel "to vedenje je enak kot "strtol. Torej, to je v bistvu za atoi vse namene. In vidiš, da uporabite tudi za nično in 10. Ta dejansko omogoča, da sprejme niz, in ga pretvori v številko, in izberite izhodiščno želite, da to storite noter Torej je to osnova 10 tukaj. Lahko bi naredil bazo dva za eno decimalko, Osnova za 16 šestnajstiškem. To je zelo kul. Ampak skrajšam zgodbo, to sta potrebna dva številke in jih sešteje. Torej, kaj je prost. In boste tudi opazili, da so nekatere stvari - tako da imam Makefile tukaj, in Če odprete, da se nekaterih stvari boste opazili, so različni. Zlasti ta argument tukaj, boste verjetno ni videl. Na splošno, bomo prevedite stvari s pomišljajem nič, nič. Dash nič, nič, pomeni, ne delaj koli optimizacije, prevajalnik. Ne poskušajte narediti kaj posebnega, ali kaj narediti hitreje teči, ali pa znebite spremenljivk, ki so potrebne. Ne optimizirati to kodo na vse, Sprašujem za tretje ravni optimizacija. Torej, jaz vprašam prevajalnik narediti Veliko optimizacije. Lahko spremenim v makefile, ko imate to kodo, če želite videti različne stvari. Katere bomo prikazali v drugem. Tako smo vodim vsoto 1 plus 2 plus 3. Nekdo mi dva argumenta. PUBLIKA: 4 in 5. SPEAKER: 4 in 5. Hvala vam. Super, da deluje. Kaj so nekateri drugi dobri argumenti poskusiti, da poskrbite, da bo to delovalo? Kdorkoli? PUBLIKA: 0. SPEAKER: 0 in? PUBLIKA: Negativno 3. SPEAKER: Deluje. Ampak to so bili dobra izbira. OK, gremo nazaj. To je mysum.c. Opazili boste, tam je tudi nekaj imenovano sumfunction.c. In to pravi, oh, nekaj definirana v sumfunction.c. Jaz ne vključujejo te datoteke tukaj ker se mi ni treba. Vendar sem jo povezati v trenutku, ko sem zbrati, ki vas bodo opazili. Pojdimo se pomaknete navzgor. Videli smo, ko smo zbrani mysum, pravico Tam smo povezani v binarno od sumfunction.o. In ne rabim datoteko glave ker je seveda, da je Izjava funkcijo. Tako oster vključevati normalno le izhodov v deklaraciji funkcije. Tukaj sem samo dal naravnost v kodeksu. In tako moram storiti, je povezava v binarno, ki sem jo naredil. Kakršne koli ugibanja, za kar je v sumfunction.c? Kaj kodo sem napisal v sumfunction.c? PUBLIKA: [neslišno]. SPEAKER: Vse ugibanja? Ja? Občinstvo: Mislim, opredeljuje nekateri [neslišno]. Zvočnik: Da. Torej, pišem int vsota int. Pišem te vrstice, potem pa sem imel odprt kodrasti brace, zaprta skodrane opornik. Kaj misliš, da pišem notri tiste zaviti oklepaji, znotraj te funkcije? Ja? PUBLIKA: Nazaj enaka. Procesor: To je res dobro ugibanje. Kdo misli, [? Manu?] Ima prav? Piše se vrnete plus b. OK, ne vsi. [? Akshar,?] ti tudi? Ste prepričani? OK. Kaj? PUBLIKA: pira si ga narobe. Govoril je: Ne, nisem. Ja, samo hecam se. Prav imaš. To je točno to, kar pravi. To je vrnitev plus b. To naredi veliko smisla. OK, gremo nazaj. Bomo videli, kako glave - da je tip donos. Ne pozabite, da smo videli, da je dan eno, vrnitev vrsto funkcije, vendar gre pred imenom funkcije int. Tukaj sem napisal int. Kaj misliš, da se bo zgodilo, če pri tem funkcija, ne pišem int, vendar Pišem nepodpisani? Razlika je seveda, da da nepodpisani predstavlja le pozitivno cela števila, in int lahko pozitiven ali negativen. Tako da sem se spremenila vrnitev Vrsta te funkcije. Ta številka se ne ujema to vračanje vnesite tukaj. Kaj misliš, da se bo zgodilo ko sem prevedite? Moral bi vpij name. Brez dretja. Kaj pa, ko sem zagnati program? Naredimo pred 0 negativnih 3 ali negativna 1. Še vedno deluje, čeprav pravim to je vračanje nepodpisano celo število. Jasno je, da se ne bo vrnil nepodpisani celo število. To je vračanje podpisano celo število. To je vračanje negativnega 1. OK, to je čudno. Kaj pa, če grem v tu in to naredil? Tako sem vse spremenila od int do nepodpisani. To lahko traja le nepodpisane celih števil. Ampak še vedno mislim, da bo trajal? PUBLIKA: Da. SPEAKER: Bo. To je noro. In se peljemo v jasno dodeljena celo, da lahko mimo dveh podpisana število, še vedno deluje. OK, vse ideje, zakaj je še vedno dela, ali kaj se dogaja? Ja, Jeff. PUBLIKA: ima nekaj opraviti z optimizacijo, ki jih poudarjeno. SPEAKER: Ne Mi lahko spremenite optimizacijo, bi še vedno deluje. To lahko storim za vas, ampak - PUBLIKA: Jaz bom na besedo. SPEAKER: Ja. Če odprete Makefile tukaj, Spremenil sem optimizacijo. Tako da lahko narediš pomišljaj nič, zero. To bo še vedno delovala. Druge misli? Vi vsi naj bi delovalo, tako Zakaj ste pričakovali, da dela? Ne? Tišina. OK. Moram počakati sedem sekund, ker sem vprašal. Tako kul stvar C, in ste verjetno doživeli prej - vas morda ne bi bilo, bi to lahko je prvič. Ampak kot vsi veste, ko pišem nekaj v C, to ne shrani kot To na računalniku. To je shranjena kot tiste in ničel. To gre z oznako C do zbiranja kodo. Je kdo videl montažo kodo pred, stroj za sestavljanje koda? Si bomo pogledali v sekundi. To gre z oznako C do zbiranja kodo. In veste faze zbiranja. Si moral zapomniti, da je za kviz eno, potem pa napiši na kvizu nič. Večina ljudi se zmotili. Mislim, da vama je pribil. Ampak, vi ste najboljši odsek za kvize, mimogrede. , Ki je super. To vas ne bo bolelo. Ne bodite v skrbeh. Ampak to je res kul. Dobro delo. Torej gre v zbirnem jeziku, in potem gre za enic in ničel. In tisti in ničel se shranijo na računalnik, in to je tisto, shranjene v a.out, ali v tem primeru izvršljiv pila. In računalnik zažene tiste in ničel. Kajne? To smo že naučili. Tako kul stvar je ta nepodpisani Ideja, zamisel o vrstah Ints nepodpisana, et cetera, et cetera, da je tu v jeziku C. Tisti, ki obstajajo. Ampak tipi ne obstajajo tisti, in ničle. Tipi sploh ne obstaja zares na Raven zbirni jezik. Torej, to je nekaj, kar obstaja v C svet, vendar ne obstaja v računalniku svet ali predelovalec svetu. To pa je abstrakcija, da C Jezik je vključeno, da bo naša življenje lažje. Zato ob koncu dneva, znam tukaj veliko različnih stvari, in to ne bi razliko. Ker je to le obstaja V svetu C. To ne obstaja tisti, in ničle svetu. In naš program je izvrševanje v tisti, in ničle svetu. Torej, vaš um je očitno še ni pregorela. Ampak mislim, da je kul. Ja, Jeff. PUBLIKA: Torej, če bi namesto početje int, ti char. In ti si bila - SPEAKER: Greva na sekundo. PUBLIKA: Ker potem dobiš nepodpisani gre od negativnega do 128 127 ali 0-255. SPEAKER: Torej znak je problematičen. Ali kdo ve, zakaj bi bilo char problematično, saj bi in dejansko spremeniti stvari v tistih in ničlami ​​svet? PUBLIKA: Zaradi velikosti char. SPEAKER: Velikost char je 1. Torej nepodpisani je tudi 4 bajte. Tako da bi znak vijak stvari. Toda kaj je 4 bajte, da je nanaša na char? Ali pa, da doda eno dodatno - lahko postavite eno značaja Po char. PUBLIKA: Char zvezda. SPEAKER: Char zvezdicami ima 4 bajte. Torej dajmo nekaj narediti To je znak zvezda. Torej, bi to verjetno dela, vendar smo naredili še nekaj bolj noro kot to. Po mojem mnenju, bolj nor. Jaz sem zdaj napisal funkcijo, ki vrne kazalec, in to traja kazalec in nepodpisana vrednost - bomo to spremeniti, da int zato nismo kar preveč sprememb naenkrat. In to je niz se imenuje, indeksi v matriki in vrne naslov. Videli smo te subjekte prej. To, kaj misliš to se dogaja storiti v zameno, ko sem prost? Kaj misliš, da se dogaja, da naredim? Kakršne koli ugibanja? PUBLIKA: Segfault. SPEAKER: Kaj? Segfault? To je dobro ugibanje. Tom pravi isto stvar. Kakršna koli druga ugibanja? Kdo misli, da se bo narediti isto stvar? Kdo misli, da se bo segfault? To počne isto stvar. Žal mi je. Ampak, seveda, smo se v 1. in 2.. In tisti, sta oba velja, kajne? Poglejmo, lahko gremo na Drugo mesto matrike. Kaj pa če smo b negativno število? To je verjetno bolje ugibanje Za nekaj segfaulting. Še vedno deluje. OK, to je zdaj noro. To je enako veljavne funkcijo SUM. To počne točno isto stvar kot povratno a in b. Ali lahko kdo razloži, zakaj je to dobro Skratka funkcijo, ali zakaj to deluje? Kaj se tu dogaja? Zakaj to narediti točno isto stvar, kot je naš stari funkcijo SUM? [? Akshar,?] kaj se dogaja? PUBLIKA: Ker, če imate To je naslov, pomnilnik - in ko boste to storili znak &, da gre za to pomnilniški naslov. In ko greš na B, si nekako gibljejo korakov od tega pomnilniškega naslova, ste se vračajo, da. Torej ste pravzaprav v resnici, Dodajanje in b [neslišno]. Kje so standardne operacije na ta obračun? Všeč mi je, kje oklepaji padejo? Je vrnitev naslova na pred ali po [neslišno]? SPEAKER: To se dogaja, da indeks v b - ali indeksa v - in potem vrne naslov. OK, tako da niso vsi razumeli kaj [? Akshar?] je dejal in pojasnil, zakaj to deluje? Nisem, najprej, ko kdo je pojasnil, da je to zame. Bi kdo rad sliko to pojasniti? Bomo narisati sliko, s Ni označevalcev, to je super. Našel nekaj. Torej imamo niz, ki je serija polj. Prvi je indeks 0, indeks 1, 2, 3, 4, pika, pika, pika. Tipičen matrika. In poleg tega, da imajo indekse, vsi imajo pomnilniške naslove. Torej, dajmo ta pomnilniški naslov 13, 14, 15, 16, 17, in tako naprej. Vsi so tu doslej. Torej je naslov. Ime array, kazalec se tam shrani. To je kazalec, da je pomnilnik, na začetku matrike. Torej, če bi bila ta matrika, bi bila vrednost 13. In, seveda, lahko damo katera koli vrednost želimo. Char zvezda, lahko damo koli pomnilniški naslov želimo. Mi lahko dajo 0, lahko smo ji dati negativna 1 - negativna 1 ne obstaja, , tako da je verjetno problematična, vendar ste videli, da je še vedno delal. Torej lahko damo poljubno število želimo, koli pomnilniški naslov želimo. Potem, int b pravi, OK, grem v to številko od korakov v array. Torej, če je b enak 2, in je enaka 13, smo na pomnilniški naslov 13. In gremo dva koraka v, in zato smo tukaj. In ampersand pomeni vrnitev naslov tej lokaciji. In naslov, seveda, 15. Tako smo dobili 13 plus 2, ali plus b, ki je 15. Vprašanje je, čeprav - Žal mi je. Ali to razjasniti stvari , zakaj to deluje? PUBLIKA: Zakaj bi to delo bo - tako da lahko imajo celo paleto in pojdi na negativno indeks? SPEAKER: Right. Tako smo naredili negativne številke, tako, da je - Ali je to smiselno, čeprav, Prvič, [? Avi,?] za vas? OBČINSTVO: Ja, jaz sem samo [Neslišno], ampak - Govoril je: Ja, to bi vrnili 15. Če je 13, in b je 2, to bi vrnili 15. PUBLIKA: Torej nič, indeksiranje ne postane problem, kajne? Ker ste se gibljejo od 0. SPEAKER: Right. Torej ste se gibljejo - tako da, če b bilo 0, si ne bi premakniti nikamor. In ti bi se pravkar vrnili naslov - če b 0, to je v bistvu vrnitvijo, da se naslov. , Ki poteka v znakovnem STAR in vračanje naslov je le vrača, v bistvu. V redu, vprašanje je, zakaj negativne številke delo? In to je res kul stvar tega, ker bi to moralo segfault. In da bi bilo segfault če bomo storil kaj takega. Recimo, int. Torej ta koda videti enaki in bi morali obnašati enako. V bistvu, x je smeti spremenljivka, in zato je treba to obnašajo enako. Naj bo tega - oops - v zvezde. OK, smo že dobili napak tukaj, saj je že bo jezen vame, saj je že ve, kaj prihaja. Zlasti druga. Naslov zloženega spomina povezana z lokalno spremenljivko. V bistvu, ne bom, da pripravijo to, in potem bom naredil, da razveljavite kar smo pravkar storil. Ampak zato, ker nismo nikoli dejansko dostop, kar je na spomin mesto, da ne bo segfault. Mi nikoli dejansko gledaš, kaj je v drugo polje ali kaj je v vsakem oknu v tem polju. Mi smo samo pravim, tukaj je naslov za stvar, ki jo iščete in vrniti ta naslov. Ne bomo nikoli dejansko dogaja v Niz pogled na tem mestu. In ker nikoli ne dotikajte spomin, ne bomo v težavah. Ne bomo dobili segfault. Če bi poskušali znova, se dotaknite, da spomin, dotik, kar je bilo na a ali b - ali nosilec b, in ob predpostavki je 0 in - če je 0, čeprav, to bi bilo lepo slabo, ker ne moremo iti navzdol vse poti tja. Če so A in B oba 0, in smo skušali dotakniti, kaj je bilo tam, potem bi zaideš v težave. Ampak, če se ne dotikajte, kaj je tam, smo samo vrnitev naslov, je dejansko ne bo segfault, ker vam omogoča, da opravljanje teh dejavnosti. To postane šele jezna nate, in dobi super jezen, ko poskusite in se dotaknite dejanska spomin in vrne tisto, kar je na tega pomnilnika. Ali to smiselno? To je samo nor del C. Torej, imamo še enega. Kdo misli, da je to kul? Več ljudi. To je dobro. OK, to je naša zadnja. In rad bi, da mi poveste, ali ali ne mislite, da se bo narediti točno isto stvar. Sem ti napisal nekje. Ne bom jih zapomniti. Poglejmo, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Torej je to matrika, zdaj, ni funkcija. In to je niz, saj imamo square nosilci, ne zaviti oklepaji. In to je niz kakšne vrste? Vsakdo, hmm? PUBLIKA: Njihovi šestnajstiških številk? SPEAKER: Toda kaj je tip C? Vsi imajo šestnajstiških številk. Kaj je tip C? To vam pove. PUBLIKA: To je nepodpisani znakov. SPEAKER: Pravica, nepodpisani znakov. In dva šestnajstiških številk je eden bajt. To so 1, 2, 3, 4, 5, 6, 7, 8, 9 zlogov. To je niz 9 bajtov. OK, ste verjetno že veste, Odgovor na to vprašanje. Ampak, kaj misliš, da bo zgodilo, ko sem teči to? Ponavljam, v mysum.c, Jaz sem pričakoval funkcijo ki traja dve celi števili. In jaz pravim, namesto te vsote je niz znakov. Kaj se bo zgodilo, ko Vodim. / Mysum in da? No, najprej, večina vas bo verjetno se strinjajo, da make - oh ne, samo hecam se. Kaj sem naredila narobe? Uh oh. To bi moralo biti zaviti oklepaji. Tako si inicializacijo niz. Moja napaka. Tako smo že videli pred tem vrstam so abstrakcija-C ravni, ne abstrakcija ravni računalnik. Tako da je večina od vas verjetno pričakuje, da da, ali ob predpostavki, da bi bilo. Toda kaj, ko sem prost. / Mysum? Kaj se bo zgodilo? Kakršne koli ugibanja? PUBLIKA: To se dogaja, izpisal besedo. SPEAKER: To se dogaja, izpisal besedo. Kaj novega? PUBLIKA: [neslišno]. SPEAKER: Vse druge ugibanja? OK, izpisal stavek. Lahko imaš vse fraze. Da bo tvoja stran. Vsakdo, ki ima drugačno ugibati? Anna, kaj je tvoja domneva? PUBLIKA: Vse bo izpisal - dve črki, ali [neslišno] ena črka. SPEAKER: Ena črka. PUBLIKA: Lahko računam, kako veliko [neslišno]? SPEAKER: Nine. No, jaz grem, da ga vodijo. To počne točno isto stvar. Dodaja dve številki skupaj. No, pa mimo dva argumenta. To ne sprejme argumente. Tako da ne vem, če bi lahko morda dobil te argumente. Vendar naj preide na 100 in 0. In dodaja, 100 in 0. To je noro. Mislim, da ja. Negativno 4, ki deluje preveč. To lahko storite vse, kar hočeš. To je enako veljavna funkcija vsote. To je funkcija vsote. Ampak, ne, ti si rekel, da je niz bajtov. Torej, kaj se dogaja? Torej, še enkrat, gremo nazaj na to idejo da smo povedali že na samem začetku. Greš z oznako ravni C, za montažo jezik, za tiste in ničel. To je šestnajstiški. Ampak to je res samo Veliko enic in ničel. To je tisti 72 in ničle, kajne? 72 tisti, in ničle. 9 bajtov. Vsak bajt je 8 bitov. Vsak bit je eno ali nič. Torej 72 onov ali ničle. Jaz sem jih pravkar napisal takole - ne pa s pisanjem kot veliko tisti, in ničle. Ampak to bo šel od ravni C jezik, za montažo jezik, kodi. In to se bo izpisal v kodi, Nekje ti tisti 72 in ničle da sem tukaj napisal. Torej nekje v tem, da - gremo tukaj - nekje v mysum, program pa so ti tisti, 72. in ničle, ki sem jih pisni in povedal, da pisati. Zdaj, vsa ugibanja, za kaj tiste 72 tisti, in ničle pomeni? PUBLIKA: Verjetno isto stvar kot vrnitev plus b. SPEAKER: Verjetno isto stvar kot vrnitev plus b. Dajmo preveriti,. Dajmo ugotoviti, kako sem to naredil. Torej, če greš nazaj, povem vam: teči ta ukaz, objdump-S sumfunction.o. Pojdimo ga zaženite. objdump - obj, smetišče. V bistvu mi je lahko dal kar hočem videti. To mi lahko pove zbirni jezik. To mi lahko dal tiste in ničel. To ima tono zastav. To je ena greva uporabiti za zdaj. Dot - kot vidite v diapozitivih - dash kapital S pravi, Razasuti, Izvorna koda - ta vrstica je iz C - z montažo kodo in s tistimi in ničel. In bomo teči je na sumfunction.o. Saj nam bo lažje videti. Again - hmm? PUBLIKA: pira si ga narobe. SPEAKER: Ampak jaz dejansko dogaja da je jasno za sekundo. Jaz sem prvič dogaja, da se odpre Samo sumfuntion.o. PUBLIKA: to ste pira Napačna prvič. SPEAKER: Classic. Sum - da je težko besedo, čeprav. Ti bi bil presenečen. OK, tako da je to sumfunction.o. Jaz tudi ne bi mogel povedati. Obstaja veliko ničel, očitno veliko ničel, in tam je nekaj drugega stvari, ki je ne ničle. Ampak predvsem ničle. Videti je, da so nekateri naši. Torej je jasno, da je to težko brati. To je binarni jezik. Dajva zdaj odpreti - kaj? Kaj delam narobe? Sem črkovati pravilno? OK, to je čudno. Rabim eno sekundo, da ugotovimo kaj delam narobe. To je ena napaka. To je čudno. Oh, to je, zakaj. Jaz grem nazaj na našo začetno ena, tako da bomo lahko ogledate na Predmet koda za to. Zato, ker se v resnici ne dogaja, da karkoli, ko smo pravkar dal tisti, in ničle palcev Takole. OK, tako da lahko vsi videli. Ta funkcija, kot sem rekel, odpravlja vrstice C - koda linije virov - z nekaterimi navodili za montažo. Tu je naša izvorna koda linijo. Tukaj je ena, tukaj je še en. Tukaj je montaže navodila. To je tisto, kar si želijo. Navodila za montažo - boste lahko izvedeli več o njih, če jemljete drugi razredi CS, ampak oni splošno navodilo. In potem vir in destinacijo. In potem tukaj je binarno kodo ki ustreza tej montažo navodila. Torej, kot lahko vidite, to funkcijo vsota, Na koncu dneva, je tri navodila za montažo. Samo tri. Ena mov - ta m-o-proti stoji za mobilnost. Dodaj stojala za Add. In r-e-t stoji za vračanje. Torej ena mov, ena dodatek, ena povratna. In to, tukaj, so ničle in Tiste, ki ustrezajo tem zakoniku. Torej ti ničel in enic, če ste veš, tiste, lahko daš tistih, ki naravnost noter In potem bom to naredil Enako natančna stvar. Ker na koncu dneva, vse ste izvršitve dolg niz ničel in enic. In to je tisto kodo je res. In razlog - Oglejmo si eno stvar. Ali imam Makefile odprta? Torej, če smo šli nazaj v dash nič, nič tu gor - Žal mi je, kapital o, kapital O nič, nič, nič. In sva storila, bi bilo še vedno dela enako. Ampak zdaj ste opazili, da obstaja veliko več navodila za montažo. To je zato, ker, še enkrat, sem vprašal prevajalnik ne naredi nobene optimizacije. Tako da sem lahko še vedno traja vse te ničel in enic, in jih vrgel, in da bi delovalo. Pravkar sem se optimizacije, saj to je malo lažje, potem, napisati to vrsto. Vendar bi to delo prav tako dobro. OK, bomo storili še zadnjo stvar, ker mislim, da je kul del. Čeprav so vsi jasno že pregorela in brez besed. Naše misli so prave. [Neslišno] Torej, to so iz različnih CS razred kar je zelo zanimivo, , da sem - CS61. Zelo sem vam svetujemo, da ga vzamete. Ampak kul del o tem dejstvu, da Stvari so le ničel in enic, so, da je vse ničel in enic. Tako da si lahko datoteko, ki ima pravilni ničle in tiste, ki jih želite nekje v njej, in uporabite tistega dela ničel in enic v odvisnosti kilometrov. Kaj mislim s tem? Mislim si lahko slikovno datoteko, ki ima pravilno serijo ničel in tisti, ki tiskajo nekaj ven na sliko. In en program lahko razlagajo je slike, lahko pa ga razlagajo, če hočeš, kot funkcijo vsote. Torej, če smo želeli odpreti, za Na primer, ta podoba. Pojdimo, Hello Kitty. Čudovito malo sliko. In tukaj je, da niz ničel in enic. Ti 72 ničel in enic obstaja v tej podobi. Torej, kaj lahko storim, potem je pisati - Moram se spomniti, kje so. Bom ugotovili, da v sekundi. Ampak delamo - Naj izvedeti, kje so. Samo trenutek. Naredimo - PUBLIKA: [neslišno]. SPEAKER: Hvala. Torej, če smo izvedbo tega programa, ki namesto da prebere datoteko, potem gre tem indeksu v datoteki. In potem spet, tako kot mysum, traja dve številki. Mi lahko dodate številke popolnoma enake kot smo počeli prej, kar gre vam pokaže, kako to, da je na koncu dneva, so vse te stvari ničel in enic. In to je samo, kako se odločite za njihovo interpretacijo. In če ste dejansko videti na tej sliki - dajmo povečati bit. Ga lahko vsi videli? Opazili boste, prav tu, tam nek čuden packa. Pojdimo - to je izvirna slika. Opazili boste, tu ni packa. To je koda za funkcijo vsote, je, da malo packa tam. In dejansko, še enkrat, če želite izvedeti več o tem, boste spoznali, da je to Hello Kitty, ki je celo večji packa, ima kodo, ki lahko prevzame računalnik, če to ni zaščiten ustrezno. Tako da lahko dejansko vodijo to. Ne grem, da ga vodijo prav zdaj. Vendar lahko zaženete ta Hello Kitty slika, in ga lahko prevzame računalniku. Tako, da je vse za demo. Ima kdo kakšno vprašanje, pripombe, pomisleke? Mislim, da ta stvar je zanimiva. To me je navdušilo, da izveste več. Priporočam, če vas zanima sploh na CS, govori z mano. Čeprav sem družboslovje Koncentrator, sem CS, sekundarne, tako Še vedno vem, malo. Ampak jaz zagotovo vedeli, kaj razredi, morate sprejeti. Mislim, da je vse res zanimivo, in vas pozivam, gotovo, da izvedeti več, če ste zainteresirani. OK, imam še zadnjo stvar. Žal mi je. Vsa vprašanja? Nisem premor čakati, če kdo imeli kakršna koli vprašanja o tem. Je kdo bo CS Concentrator? Ali razmišljate o tem? Ena, dva, tri, štiri. Eden - edini. Anna se je le roko, ki je postavljeno avtoritativno. OK, to je kul. Assam, kaj boš naredil? PUBLIKA: [neslišno]. SPEAKER: Constantine? PUBLIKA: Fizika. SPEAKER: Vau, to je bilo pa hitro. Ste imeli slabe izkušnje v CS50? [Neslišno], kaj boš naredil? PUBLIKA: Nimam pojma. SPEAKER: Curt? PUBLIKA: Econ ali CS. SPEAKER: Econ ali CS. Tom? PUBLIKA: delam Stat. SPEAKER: Stat? OK. Kaj ste vi? PUBLIKA: Me? SPEAKER: Ja. PUBLIKA: Stat. SPEAKER: Stat. Oh, tukaj imaš. Tom, se posvetujte z Alden. Emily, kaj si ti? PUBLIKA: Biomedicinska - Govoril je: Ali ste v tem delu? PUBLIKA: Ne SPEAKER: OK, to je Emily. Ona je moja prijateljica. Jasno je, da ni dobro za prijatelja, ker ona mi daje težko. Lahko bi bilo lepše, da me pred vsakogar, moj učenec - PUBLIKA: delam svoje Q navodila. SPEAKER: Res? Uh oh. OK, ti si neverjeten. Tudi jaz te imam rada. Oh fant. Kakorkoli že, sem, sinoči, kot vse - Prepričan sem, da vsi mi zdi zelo Poudaril zdaj. Ne vem, ali novinec - so vi občutek poudaril? Počutim poudaril. Bilo je kot, greš domov za zahvalni dan. Ti si kot, da bom vse te stvari. PUBLIKA: To je tako drugačen. Govoril je: Ja, in prideš nazaj. Jeff, ti ne čutiš tako? PUBLIKA: Mislil sem, Jaz bi naredil malo. SPEAKER: OK, super. Tako sem prišel nazaj, pa še nisem storiti ničesar. In to je vse super stresno. In jaz sem zaskrbljen, resnično zaskrbljen, o tem, ali sem bo do konca vse, kar moram. Ampak sinoči, nisem poudaril, Bil sem malo žalostna. Zato sem napisal v mojem dnevniku o kar sem bil žalosten okoli. In sem bil žalosten zaradi tega oddelka v tem razredu bliža koncu. Zato sem bil šele tekoč, da se glasi za vaju mali košček mojega dnevnika, od sinoči. Lahko dobim nekaj prtičkov, nekaj tkiva iz Tom? Ne bom jokal. Ne joči. Saj ne, da ne moreš jokati, Jaz samo ne jokaj. Sploh ne vem, če je moja solza žleze delal - solza vodi. Jokala nisem že dolgo časa. PUBLIKA: [neslišno]. SPEAKER: OK, hvala. V redu, tam je malo predgovor - tam je nekaj drugih delov mojega dnevnika vstop, ker skušam reviji vsak noč, preden sem dobil v posteljo. Priporočam beležke. To vam pomaga obdelati stvari, in tudi zelo hvaležni vaš dan. In je zato veliko lažje gledati nazaj na dan, in ugotovili, da je bilo veliko dobrega stvari, ki so se zgodile. Tudi če se počutite res poudaril, ponoči ali zelo razburjeni, ali res žalostno ali utrujeni. Oh, moj bog. Sploh ne vem, če je zapisano, da ker tudi jaz ga nisem lektorirano. Ampak ga bomo prebrali. Jaz ponavadi ne berejo moje revija, seveda. "Jutri bom naučil moj finale Oddelek CS50 leta. To je noro, kako hitro čas leti. Kljub temu, sem presenečen, kako različni moja izkušnja uči letos je bilo kot takrat, ko sem bil v drugem letniku. Za predjed, jaz definitivno veš material bolje. Ampak ne povem mojo prvo kohorto študentov, ki. Še pomembneje pa sem spoznal, da je veselje, ki prihaja iz položaja v sprednji sobi tega, kar se začne ven kot tujci, ampak konča kot na Vsaj, Facebook prijatelji, je Ne prvo leto krompir. Nasprotno, to je od vedoč, da je v nekaj manjših način, si pomagamo nadarjen, premišljen, čudovito in strastni ljudje naučijo malo več o računalništvu. Ste seli, da žarnico samo bit v vtičnico, tako da je sposobna sijati svetlejša od vas, ali pa, Lahko bi si predstavljal na začetku semestra. Pomagate pa ti frowns na glavo navzdol in postavljati vprašanja, ki zagotoviti podporo, vendar še vedno omogoča študente, da stojijo sami. To gotovo ni pretirano pravijo, da je to poglavje moja najljubša del tedna. Ali celo, da sem okleval reči, da je Vse, ob 05:30 vsak teden, vedoč da bo to predolgo dokler se spet srečava. Kljub temu, da sem izjemno hvaležen vsakdo, ki mi je dal to priložnost, da se vrnemo k drugim. Davidu za njegovo potrpežljivost in zaupanje. Za filmske in produkcijske ekipe, za da izgledam nekoliko ugleden. In kar je najpomembneje, da se mojih učencev, brez katerih bi Nimam razloga, da bi preživijo 10 ur poskušal ugotoviti najboljše način, da se pripravijo kazalci, ali razpostavite miza delfinov, prek JavaScript. Kot vedno, to je bil blagoslov. " Torej s tem, hvala fantje. Bom videl, da vsi na sejmu CS50, in hackathon, če si tam. In če imate vprašanja, bom palico okrog, dokler ne obstajajo več. Ampak sem hvala fantje za čudovito leto. [APPLAUSE] SPEAKER: Jaz bi jokal.