[MUSIC KUCHEZA] DAVID J. Malan: All wa kulia. Hii ni CS50, na hii ni mwisho wa Wiki ya Nne. Na moja ya mada leo ni ile ya forensics digital, sanaa ya kurejesha habari. Na hakika, hata kama wewe ni katikati hivi sasa ya Amani katika Tatu na kuzuka, wiki ijayo, mkazo uwe kwenye just uwanja huu. Hivyo moja ya kazi coolest mimi milele alikuwa alikuwa nyuma katika shule ya kuhitimu, wakati nilikuwa kazi kwa ajili ya mitaa Middlesex County Wilaya ya Mwanasheria ofisi, kufanya forensics kazi. Hivyo kimsingi, Massachusetts Hali Polisi, juu ya tukio, wakati wa kufanya kazi juu ya kesi ingekuwa kuleta katika mambo kama anatoa ngumu na floppy disks na kadi ya kumbukumbu na kama. Na wangeweza mkono wao kwangu na mshauri wangu, na lengo letu lilikuwa kupata ushahidi, kama kulikuwa na yoyote, kwenye vyombo vya habari hizi. Kiza sasa, unaweza kuwa na kuonekana wa ulimwengu huu wa forensics katika vyombo vya habari, TV na sinema. Lakini kazi Mimi nilikuwa, na daresay dunia kwamba, ni si kabisa kama ungependa kuona. Hebu kuangalia nini ve pengine kuona. [VIDEO avspelning] -OK. Sasa, hebu kupata nzuri kuangalia wewe. [MUSIC KUCHEZA] -Hold Yake. Kukimbia kwamba nyuma. -Wait Dakika. Kwenda kulia. -Kuna. Freeze hiyo. -Kamili-Screen. -OK. Freeze hiyo. -Tighten Juu ya kwamba, je,? -Vector Katika juu ya kwamba guy na gurudumu nyuma. -Zoom Katika haki hapa kwenye doa hii. -Kwa Vifaa sahihi, picha inaweza wazi na makali. -Nini Hiyo? -Ni Ni mpango kukuza. -Je Wewe wazi kwamba up yoyote? -I Hawajui. Hebu kuongeza yake. -Enhance Sehemu A6. Mimi kuimarishwa undani, and-- -I Nadhani kuna kutosha kuimarisha. Kutolewa kwa screen yangu. -I Kuimarishwa reflection katika macho yake. -Let Kukimbia hii kwa njia ya video kukuza. -Edgar, Unaweza kuongeza hii? -Hang Juu ya. -I've Wamekuwa wakifanya kazi katika reflection huu. Reflection -Kuna ya mtu. -Reflection. -Kuna Ni reflection ya uso wa mtu. -The Reflection! -Kuna Ni reflection. -Zoom Katika juu ya kioo. Unaweza kuona reflection. -Je Wewe kuongeza picha kutoka hapa? -Je Wewe kuongeza yake? -Je Wewe kuongeza yake? -Je Sisi kuongeza hii? -Je Wewe kuongeza yake? -Hold Ya pili. Mimi itabidi kuongeza. -Zoom Katika juu ya mlango. -Times 10. -Zoom. -Move Katika. -Zaidi. -Wait, Kuacha. -Stop. -Pause Yake. -Rotate Us digrii 75 karibu wima, tafadhali. -Stop. Nenda nyuma sehemu juu ya mlango tena. -Got Picha enhancer ambayo inaweza bitmap? -Maybe Tunaweza kutumia Pradeep Singh njia ya kuona ndani ya madirisha. Programu -The ni hali ya sanaa. -The Eigenvalue ni mbali. -Kwa Haki mchanganyiko wa algorithms-- Hapo ya kuchukuliwa kuja algorithms ngazi ya pili, na siwezi matumizi yao ya kuongeza picha hii. -Lock Juu na kupanua z-mhimili. -Enhance. Kuimarisha. -Enhance. -Freeze Na kuongeza. [END video avspelning] DAVID J. Malan: Hivyo wale ni maneno hayo yote, lakini hawakuwa kutumika katika hukumu kwa usahihi. Na hakika katika siku zijazo, wakati wowote, tafadhali, wewe kusikia mtu kusema neno, "Kuongeza," chuckle kidogo tu. Kwa sababu wakati wewe kujaribu kuboresha, kwa mfano, hii ni kile kinachotokea. Hivyo hapa ni picha gorgeous. Hii ni CS50 ya mwenyewe Daven. Na kudhani kwamba sisi alitaka kuzingatia katika juu ya twinkle katika jicho lake, au reflection ya guy mbaya kwamba ilikuwa wazi alitekwa na kamera ya usalama. Hii ni kile kinachotokea wakati wewe zoom katika juu ya picha kwamba ina tu idadi finite ya bits yanayohusiana na hayo. Hiyo ni nini ungependa kupata. Na hakika, katika jicho Daven ya ni lakini nne, labda sita saizi ambayo kutunga nini hasa mara glimmering huko. Hivyo Set Tatizo Tarakimu hatimaye kuwa na wewe kuchunguza dunia hii, hasa na asili ya kitu sisi kuwaita faili i / o, ambapo i / o ni njia tu ya dhana ya akisema pembejeo na mazao. Hivyo hivi sasa, yote ya mwingiliano tulikuwa na kompyuta wamekuwa kwa kiasi kikubwa na yako keyboard na screen, lakini si sana na disk ngumu, au kuokoa files ya zaidi ya wale wewe mwenyewe kuandika. Mipango yako hivi sasa na si kujenga, na kuokoa, na uppdatering files yao wenyewe. Naam, ni nini faili ni nani? Naam, kitu kama JPEG. Hii ni picha waweza na au upload kwa Facebook, au kuona mahali popote kwenye mtandao. Hakika, kwamba picha sisi tu saw ya Daven mara JPEG. Na nini kuvutia kuhusu files kama JPEGs ni kwamba wanaweza kuwa na kutambuliwa, kawaida, na mifumo ya baadhi ya bits. Kwa maneno mengine, je ni kwamba tofauti kati ya JPEG kutoka GIF kutoka PING kutoka kwa Neno la hati kutoka Excel file? Naam, ni tofauti tu mifumo ya bits. Na wale mifumo tofauti ni kawaida katika mwanzo wa files wale. Hivyo kwamba wakati kompyuta yako kuufungua Neno doc, au wakati kompyuta kufungua JPEG, inaonekana kawaida katika kwanza bits kadhaa katika faili. Na kama ni inatambua muundo, inasema, oh, hii ni picha. Hebu kuonyesha ni kwa user kama graphic. Au, oh, hii inaonekana kama Neno doc. Hebu kuonyesha kuwa na user kama insha. Hivyo kwa mfano, JPEGs, ni zamu nje, ni haki kisasa chini ya Hood. Lakini kwanza ka tatu katika wengi kila JPEG kuanza na namba hizi tatu. Hivyo Byte sifuri, moja, na wawili ni, katika wengi kila JPEG, 255, kisha ya simu 216, kisha namba 255. Na nini wewe utakuwa na uwezo kuanza kufanya wiki ijayo ni kweli poking chini ya kofia ya files kama JPEGs na kama files bitmap, na kuona nini daima imekuwa pale kwa muda mrefu kama wewe tumekuwa kutumia kompyuta. Lakini kuna nini huko ni si kawaida imeandikwa kama namba decimal kama hii. Wanasayansi wa kompyuta kufanya si huwa na kusema katika decimal. Wao si kweli kuzungumza katika binary. Kwa kawaida, wakati tunataka kueleza idadi, sisi kweli matumizi hexadecimal, ambayo unaweza kukumbuka kutoka, kusema, Tatizo Set Moja, ambayo changamoto ya wewe kufikiri juu ya mfumo tofauti. Sisi, bila shaka, ni ukoo na decimal, zero kwa njia ya tisa. Sisi aliyesema kuhusu binary. Na sisi si kweli kuwa kutumia kiasi kwamba hapa juu ya nje, kwa sababu kompyuta kutumia hiyo. Lakini programmers mapenzi sana mara nyingi, lakini si mara zote, kutumia hexadecimal, ambayo ina maana tu una barua 16 katika alfabeti yako, kinyume na mbili au 10. Hivyo ni jinsi gani wewe kuhesabu juu ya tisa katika hexadecimal? Unaweza kwenda 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, tu kwa mkataba. Lakini nini muhimu ni kwamba kila kati ya hayo ni ishara moja. Hakuna 10. Hakuna 11, per se, kwa sababu kila ya tarakimu yako, tu kama katika decimal na kama tu katika binary, lazima tu kuwa tabia moja, na mkataba. Hivyo kwamba basi ni alfabeti tuna tulizonazo kwa hexadecimal. Kwa hiyo ni nini JPEG kuangalia kama kama wewe walikuwa na kuandika wale watatu wa kwanza ka si kama decimal lakini, kwa mfano, kama hexadecimal? Na kwa nini ni hex hata yote muhimu? Naam, kuangalia haraka katika mfano. Hivyo kama mimi kuandika bits kwamba kuwakilisha hizi numbers-- decimal hii inaweza kuwa kutu kidogo sasa kutoka wiki chache nyuma, lakini moja wa kushoto na haki moja ni pretty rahisi. 255 ilikuwa kubwa idadi sisi inaweza kuwakilisha na bits nane. Ilikuwa ni wale wote. Hivyo moja tu kwamba ni upole kuvutia ni moja kati. Na kama wewe aina ya kufanya nje math, utakuwa kuthibitisha kwamba, kwa kweli, kwamba mfumo wa moja na zeros inawakilisha 216. Basi hebu tu inasema kwa sasa kwamba hizi ni sahihi. Lakini kwa nini hii ni ya kuvutia? Naam, Byte, bila shaka, ni bits nane. Na zinageuka kuwa kama unadhani ya Byte kama chunks wawili wa bits nne, kama hii. Napenda tu kuongeza baadhi ya nafasi. Basi, kabla ya, baada ya. Nimekuwa tu aliongeza baadhi ya nafasi nyeupe kwa ajili visualization hapa. Jinsi gani sisi sasa kuwakilisha katika, kusema, hexadecimal kila quad ya bits, kila seti ya bits nne? Hivyo kwa mfano, upande wa kushoto sasa, tuna 1,111 katika binary. Je, ni kwamba idadi katika decimal, kama wewe kufanya nje math? Una ndio mahali, wawili-wawili mahali, fours mahali, na eights mahali. Watazamaji: 15. DAVID J. Malan: Ni 15. Hivyo kama sisi kufanya nane pamoja na nne pamoja na mbili pamoja na moja, sisi kupata 15. Ili niweze kuandika 15 chini 1111, lakini hatua nzima hapa ni hexadecimal, si decimal. Hivyo badala ya kuandika 15, 1-5, Mimi nina kwenda kuandika kwamba katika hex, ambayo kama wewe kufikiri nyuma, kama una zero kupitia f, ni nini 15 kwenda kuwa? Watazamaji: f. DAVID J. Malan: Hivyo ni zamu nje ni ya f. Na unaweza kufanya kazi nje kwamba kwa kusema, vizuri, kama ni 10, kisha OK, f ni 15. Hivyo kweli, tunaweza kuandika upya kuweka hii moja ya namba kama f f. Na kisha kama sisi kufanya kidogo ya math, tutaweza kuthibitisha kwamba hiyo ni d. Nane ni pretty rahisi, kwa sababu sisi na moja katika eights mahali. Na kisha, sisi kuwa wanandoa zaidi f f ya. Basi nini binadamu huwa na kufanya kwa mkataba wakati matumizi ya hexadecimal ni wao tu kuandika hii kidogo zaidi kwa ufupi, kujikwamua zaidi ya nafasi ya kuwa nyeupe. Na tu kuwa super wazi kwa wasomaji kwamba hii ni hexadecimal, mkataba kati ya rahisi binadamu ni wewe kuandika zero x, ambayo haina maana nyingine kuliko kitambulisho Visual ya, hiyo inakuja idadi hex. Na kisha, unaweza kuweka tarakimu mbili za, f f katika kesi hii, basi d, basi f f. Hivyo hadithi muda mfupi, hexadecimal tu huelekea kuwa na manufaa kwa sababu kila moja ya yake tarakimu, sifuri kupitia f, kikamilifu mistari up na muundo wa bits nne. Hivyo kama una tarakimu hexadecimal mbili, zero kupitia F, tena na tena, kwamba anatoa kikamilifu bits nane au Byte moja. Hivyo ndiyo sababu inaelekea kuwa conventionally muhimu. Hakuna miliki maudhui kweli zaidi ya hapo, zaidi ya matumizi yake halisi. Sasa JPEGs ni si tu faili format kwa graphics. Unaweza kukumbuka kwamba kuna files kama hii katika dunia, angalau kutoka miaka michache nyuma. Hivyo hii ilikuwa kweli imewekwa katika Windows XP juu ya mamilioni ya PC duniani kote. Na hii ilikuwa bitmap faili, BMP. Na bitmap faili, kama utaona ya wiki, tu ina maana ya muundo wa dots, Ukubwa kama wao ni kuitwa, a ramani juu ya bits, kwa kweli. Basi nini kuvutia, ingawa, kuhusu hili format file, BMP, ni kwamba chini ya Hood, ni ina zaidi ya ka tatu tu ambayo kutunga header yake, hivyo kusema, kwanza kuumwa chache. Ni kweli inaonekana kidogo ngumu katika mtazamo wa kwanza. Na utaona hili katika P kuweka. Na kupata kitu nje fulani ya hii sasa si hivyo muhimu, kama tu ukweli kuwa katika mwanzo wa kila bitmap file, format graphical, kuna rundo zima wa idadi. Sasa Microsoft, mwandishi wa muundo huu, huelekea kuwaita wale mambo si ints na chars na ikifungwa lakini maneno na d maneno na anatamani na ka. Hivyo wao ni tu aina tofauti data. Wao ni majina tofauti kwa kitu kimoja. Lakini utaona kwamba katika P Set Nne. Lakini hii ni tu kusema kwamba kama binadamu mbili-Clicks baadhi ya faili .bmp upande wake au gari yake kwa bidii, na dirisha kuufungua up kuonyesha kwake picha kwamba, kwamba kilichotokea kwa sababu uendeshaji mfumo labda niliona si tu .bmp Faili ugani katika jina la faili, lakini pia ni ukweli kwamba kuna baadhi ya mkataba kwa mfano wa bits mwanzoni sana ya kwamba bitmap faili. Lakini hebu sasa kuzingatia kama faili ngumu, lakini badala yake juu ya kitu kama hiki. Tuseme hapa katika gedit, mimi tu mwanzo wa mpango huo pretty rahisi. Mimi nimepata baadhi ni pamoja na juu juu. Sasa mimi nimepata #include "structs.h" lakini Mimi itabidi kuja nyuma na kwamba katika wakati huu. Lakini hii ni muhimu kwa sasa. Hivyo hii ni mpango hiyo ni kwenda kutekeleza kama database msajili ya. Hivyo database ya wanafunzi, na kila mwanafunzi katika dunia ina jina na nyumba na pengine baadhi ya mambo mengine, lakini tutaweza kushika ni rahisi. Kila mwanafunzi ana jina na nyumba. Hivyo kama mimi alitaka kuandika mpango ambao lengo katika maisha mara tu iterate kutoka sifuri juu ya hadi tatu, kama kuna wanafunzi watatu katika Chuo Kikuu cha Harvard. Na mimi nataka tu kupata, kwa kutumia GetString, jina la kila mwanafunzi na nyumba, na kisha tu magazeti wale nje. Hii ni aina ya kama Wiki Moja, Wiki Barua mambo sasa, ambapo mimi nataka tu kwa kitanzi au kitu kama hicho. Na mimi nataka kuwaita GetString chache mara kwa mara, na kisha magazeti f mara chache. Hivyo jinsi gani mimi kufanya hivyo, ingawa, wakati wote jina na nyumba ni kushiriki kwa kila mwanafunzi? Hivyo silika yangu ya kwanza nguvu kuwa kufanya kitu kama hiki. Mimi anaweza kusema kwanza, vizuri, nipe, kusema, safu ya masharti kuitwa majina. Na sitaki hardcode tatu hapa. Nini nataka kuweka huko? Hivyo WANAFUNZI, kwa sababu hiyo tu mara kwa mara alitangaza saa ya juu, hivyo tu sina kwa hardcode tatu katika maeneo mbalimbali. Kwa njia hii, siwezi mabadiliko hayo sehemu moja, na huathiri mabadiliko kila mahali. Na kisha, mimi ili kufanya kamba nyumba WANAFUNZI. Na sasa, mimi ili kufanya kitu kama kwa (int i = 0; i