[Muzikos grojimo] David J. Malan: Gerai. Tai CS50, ir tai yra Savaitės ketvertą pabaigos. Ir viena iš temų šiandien yra ta, kad skaitmeninės ekspertizės, atgauti informaciją menas. Ir iš tiesų, nors esate viduryje dabar taikos trimis ir Breakout, kitą savaitę, Daugiausia dėmesio bus skiriama Būtent šioje srityje. Taigi vienas iš super darbo aš kada nors turėjo grįžo į aukštosios mokyklos, kai dirbau vietos Middlesex County apygardos prokuroro s biuro, daro ekspertizės dirbti. Taigi, iš esmės, Masačusetsas Valstybinės policijos, kartais, Dirbdami atvejais būtų kad dalykų, pavyzdžiui, standžiųjų diskų ir diskeliai ir atminties kortelės ir pan. Ir jie būtų perduoti juos man ir mano mentorius, ir mūsų tikslas buvo rasti įrodymų, jei ten buvo bet, šių laikmenų. Dabar, jums gali mačiau žvilgsniai Šio ekspertizės pasaulyje žiniasklaidos, TV ir filmus. Bet darbas man teko, ir Manyti, kad pasaulis, yra ne visai kaip galėtumėte jį peržiūrėti. Leiskite pažvelgti, kas jūs tikriausiai matė. [VIDEO PLAYBACK] Ok. Dabar galime gauti gerą pažvelgti jums. [Muzikos grojimo] -Hold Jį. Paleiskite tą nugarą. -Palauk Minutę. Eiti į dešinę. -Yra. Freeze kad. Pilno ekrano. Ok. Freeze kad. Sugriežtinti ant, kad jūs? -Vector Į apie tai vaikinas iš galinio rato. -Zoom Į čia šioje vietoje. -Daugiausia Tinkamą įrangą, Vaizdas gali būti išplėsta ir galąsti. -Kas Kad? -Tai Didinimo programa. -Ar Jums aišku, kad iki tokių yra? -Aš Nežinau. Leiskite jį pagerinti. -Enhance A6 skyrius. Aš sustiprino detales, and-- -Aš Manau, kad yra pakankamai padidinti. Atleiskite, kad mano ekrano. -Aš Sustiprino į jos akis atspindys. -ėlis Manimi paleisti tai per vaizdo didinimas. -Edgar, Galite padidinti tai? -Hang Ant. -I've Dirbu šį atspindys. -Yra Savo kažkieno atspindys. -Reflection. -Yra Yra iš žmogaus veido atspindys. -The Atspindys! -Yra Yra atspindys. -Zoom Į ant veidrodžio. Jūs galite pamatyti atspindys. -Gali Jums padidinti atvaizdą iš čia? -Gali Jūs jį pagerinti? -Gali Jūs jį pagerinti? -Gali Mes padidinti tai? -Gali Jūs jį pagerinti? -Hold Sekundėlę. Aš padidinti. -Zoom Į ant durų. -Times 10. -Zoom. -Move Į. -Daugiau. -Palauk, Sustoti. Stop. -Pause Jį. -Rotate Mums 75 laipsnių aplink vertikalios, prašom. Stop. Grįžti į dalis apie duris vėl. -Priimta Vaizdo stipriklis, kuris gali Bitmap? -Maybe Mes galime naudoti Pradeep Singh būdas pamatyti į langus. -The Programinė įranga yra moderniausias. -The Tikrinių reikšmių yra išjungtas. -Daugiausia Dešinę kombinacija algorithms-- -Jis Imtasi apšvietimas algoritmai į kitą lygį, ir aš galiu naudoti juos sustiprinti šį nuotrauka. -Lock Ant ir padidinti z ašį. -Enhance. Didinti. -Enhance. -Freeze Ir stiprinti. [END VIDEO PLAYBACK] David J. Malan: Taigi tie, kurie visi žodžiai, tačiau jie ne naudojama sakinių teisingai. Ir iš tiesų ateityje, bet kuriuo metu, Prašome, išgirsite ką nors pasakyti žodį, "Sustiprinti" kudakuoti tik truputį. Nes kai bandote padidinti, Pavyzdžiui, tai, kas vyksta. Taigi čia yra spalvingas nuotrauka. Tai CS50 savo Daven. Ir manau, kad mes norėjome sutelkti dėmesį į MiG jo akių, ar atspindys blogas vaikinas, kad buvo aiškiai užfiksuotas saugumo kameros. Tai, kas atsitinka, kai jūs priartinti vaizdą, kad turi tik baigtinį skaičių Bitų, susijusių su juo. Tai yra tai, ką jūs galėtumėte gauti. Ir iš tiesų, Daven akis yra bet keturis, gal šešis pikselių kad komponuoti, ką buvo Płomykowy ten. Taigi Problema Nustatyti Keturi galiausiai turės jums ištirti šį pasaulį, ypač gamta kažką mes vadiname failą I / O, kurioje I / O yra tik išgalvotas būdas sakydamas įvestį ir išvestį. Taigi iki šiol, visi sąveikos mes jau su kompiuteriu buvo daugiausia susijusios su jūsų klaviatūra ir ekranas, bet ne tiek daug su kietajame diske, arba taupymo failų už tuos, kuriuos sau rašyti. Jūsų programos iki šiol turi nebuvo sukurti ir išsaugoti, ir atnaujinti savo failus. Na, kas byla? Na, kažkas panašaus į JPEG. Tai paveikslėlis jums gali turėti arba įkelti į "Facebook", ar pamatyti bet kur internete. Iš tiesų, tai nuotrauka, mes tiesiog pjūklas iš Daven buvo JPEG. Ir kas įdomu apie failus kaip JPEG yra tai, kad jie gali būti identifikuoti, paprastai, tam tikrų modelių bitai. Kitaip tariant, tai, kas jį, kad išskiria JPEG iš GIF iš iš Word PING dokumentas iš Excel failo? Na, tai tiesiog skirtingi modeliai bitai. Ir tie skirtingi modeliai paprastai šių failų pradžios. Taigi, kad kai jūsų kompiuteris atidaro Word doc, arba kai kompiuteris atidaro JPEG, atrodo paprastai ne Pirmieji keli bitai failo. Ir jei ji pripažįsta, modelį, ji sako, oi, tai yra paveikslėlis. Leiskite parodyti jį vartotojas kaip grafinis vaizdas. Arba, oh, tai atrodo Word doc. Leiskite parodyti naudotojui, kaip esė. Taigi, pavyzdžiui, JPEG, it turns out, yra gana sudėtingas po gaubtu. Tačiau pirmieji trys baitų dauguma kas JPEG pradėti su šiomis trimis skaičiais. Taigi baitų nulis, vienas, o du yra iš dauguma kas JPEG, 255, tada skaičius 216, tada skaičius 255. Ir ką jūs galėsite pradėti daryti kitą savaitę iš tikrųjų išnyra po failų gaubtas kaip JPEG ir kaip bitmap failus, ir pamatyti kas visada buvo ten, kol kaip jūs buvote naudojant kompiuterį. Bet kas yra paprastai nėra parašyta kaip dešimtųjų kaip šis. Kompiuterių mokslininkai ne linkę kalbėti po kablelio. Jie tikrai ne kalbėti dvejetainis. Paprastai, kai mes norime išreikšti numerius, mes iš tikrųjų naudoti šešioliktainis, kurį gali prisiminti nuo, tarkim, problemą, Vienas, kuris ginčijo jums galvoti apie kitą sistemą. Mes, žinoma, esame susipažinę su dešimtosios nulio per devynių. Mes kalbėjome apie dvejetainę. Ir mes iš tikrųjų neturime naudoti, kad daug čia laukan, nes kompiuteriai naudoti, kad. Bet programuotojai bus labai dažnai, bet ne visada, naudoti šešioliktainis, kuris tiesiog reiškia, jūs turite 16 raides savo abėcėlės, , palyginti su dviejų ar 10. Taigi, kaip jums suskaičiuoti iki didesnės nei devynių šešioliktainis? Nueini 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, tik pagal susitarimą. Bet kas svarbiausia yra, kad kiekvienas iš jų yra vieno simbolio. Nėra 10. Nėra 11 per se, nes kiekvienas Jūsų skaitmenų, tiesiog patinka dešimtosios ir kaip dvejetainiu, turėtų tik būti vienas simbolis, pagal susitarimą. Taigi, kad tada yra abėcėlė turime mūsų žinioje Šešioliktainiai. Taigi, ką JPEG atrodyti, jei jums buvo surašyti tuos pirmuosius tris baitų ne kaip dešimtosios tačiau, Pavyzdžiui, kaip šešioliktainis? Ir kodėl hex net visa tai naudinga? Na, greitai pažvelgti pavyzdys. Taigi, jei aš rašau iš bitai, kad atstovauti šias dešimtainį numbers-- tai gali būti šiek tiek aprūdijęs dabar nuo kelių savaičių atgal, bet kairysis ir teisingas yra gana lengva. 255 buvo didžiausias skaičius mes gali atstovauti aštuonis bitus. Tai buvo visi tie. Taigi tik vienas, kad yra šiek tiek Įdomu tai, viduriniosios vienas. Ir jei jūs rūšies daryti iš matematikos, jūs padaryti išvadą, kad, iš tiesų, kad vieno modelio ir nuliai yra 216. Taigi tegul tiesiog nustatyti už dabar, kad tai yra teisinga. Bet kodėl tai yra įdomu? Na, baitų, žinoma, yra aštuonis bitus. Ir paaiškėja, kad, jei jūs manote iš baitas kaip du gabaliukus keturis bitus, kaip šis. Leiskite pridėti šiek tiek erdvės. Taigi, prieš, po. Aš ką tik įdėjote šiek tiek baltos vietos vizualizavimo dėlei čia. Kaip gali dabar mes atstovaujame, tarkim, šešioliktainis kiekvienas bitai quad, kiekvienas iš keturių bitų rinkinys? Taigi, pavyzdžiui, kairėje dabar mes turime 1111 dvejetainiu. Kas yra tai, kad po dešimtainio skaičius, jei jūs iš matematikos? Turite tie vietą, poromis vieta, Fours vieta, ir aštuonias vieta. PUBLIKA: 15. David J. Malan: Tai 15. Taigi, jei mes darome aštuonių plius keturi plius du plius viena, mes gauname 15. Taigi galėjau užrašyti 15 Toliau 1111, bet čia visa esmė yra šešioliktainis ne dešimtainį. Taigi vietoj užrašyti 15, 1-5, Aš ruošiuosi rašyti, kad hex, kuris, jei jūs manote, kad atgal, jei turite nulis per f, kas 15 bus? PUBLIKA: f. David J. Malan: Taigi pasirodo, tai f. Ir jūs galite dirbti, kad iš sakydamas, gerai, jei yra 10, tada spustelėkite Gerai, f 15. Taigi iš tiesų, mes galime perrašyti tai tas pats rinkinys numerius kaip f f. Ir tada, jei mes padaryti šiek tiek matematikos, mes padaryti išvadą, kad tai yra d. Aštuoni yra gana lengva, nes mes turėti vieną į aštuonias vietoje. Ir tada, mes turime pora daugiau f f-aisiais. Taigi, ką žmonės linkę daryti pagal susitarimą kai jie naudoja šešioliktainis yra, jie tiesiog rašau tai šiek tiek daugiau glaustai, atsikratyti dauguma tos baltos vietos. Ir tik super aišku, skaitytojai, kad tai yra šešioliktainis, paprastas konvencija tarp žmonės yra rašote nulį x, kuris neturi prasmės kitą kaip vizualiai identifikatorius, čia ateina šešioliktainis skaičius. Ir tada jūs įdėti du skaitmenys, f f šiuo atveju, tada d, tada f f. Taigi ilga istorija trumpa, šešioliktainis tiesiog linkęs būtų naudinga, nes kiekvienas jo skaitmenys, nulis per f, puikiai linijos su keturių bitų modelis. Taigi, jei turite dvi šešioliktainius skaitmenis, nulis per F, vėl ir vėl, kuri suteikia jums puikiai Aštuoni bitai arba vienas baitas. Štai kodėl jis yra linkęs būti tradiciškai naudinga. Nėra intelektinės turinys tikrai už, kad, išskyrus faktinio naudingumas. Dabar JPEG yra ne tik Failų formatai grafikos. Galbūt jūs žinote, kad yra bylos, kaip šio pasaulio, bent iš keletą metų atgal. Taigi tai buvo iš tikrųjų įdiegta "Windows XP" milijonuose kompiuterių visame pasaulyje. Ir tai buvo Bitmap failas, BMP. Ir Bitmap failas, kaip pamatysite šalia savaitę, tiesiog reiškia taškelių raštas, pikselių, kaip jie vadinami, map ant bitai, tikrai. Taigi, kas yra įdomu, nors, apie šį failo formatą, BMP, yra kad po gaubtu, ją turi daugiau nei vien trijų baitų kad kurti savo galva, todėl kalbėti, pirmuosius keletą įkandimų. Jis tikrai atrodo šiek tiek sudėtinga iš pirmo žvilgsnio. Ir jūs pamatysite tai P rinkinys. Ir gauti kažką ypač iš šio dabar nėra taip svarbu, kaip tik dėl to, kad kiekvieno bitmap pradžioje failas, grafinis formatas, ten visa krūva skaičių. Dabar "Microsoft", autorius šiuo formatu, linkęs šaukti dalykų, ne ints ir simbolių ir plūdės bet žodžiai ir d žodžiai ir ilgisi ir baitai. Taigi jie tiesiog skirtingi duomenų tipai. Jie skirtingus pavadinimus už tą patį dalyką. Bet jūs pamatysite, kad P Nustatyti keturi. Bet tai tik pasakyti, kad jei žmogus dukart spusteli kai bmp failą jo ar jos kietąjį diską, ir langas parodančios jam ar jai, kad vaizdo, kad atsitiko todėl, kad veiklos sistema turbūt pastebėjo ne tik bmp failo plėtinys failo pavadinimą, bet ir tai, kad yra keletas konvencija, ir bitų modelis pačioje pradžioje tos bitmap failo. Bet tegul dabar savo dėmesį į toks sudėtingas failas, bet vietoj to kažką panašaus į tai. Tarkime čia gedit, aš tiesiog turi pradžią iš programos, tai gana paprasta. Aš turiu kai yra iki viršaus. Dabar aš turiu Include "structs.h", tačiau Grįšiu į tą, kuris yra šiuo metu. Bet tai yra naudinga dabar. Taigi, tai yra programa, kad ketina įgyvendinti kaip registratoriaus duomenų bazę. Taigi studentų duomenų bazė, ir kiekvienas studentas pasaulyje turi pavadinimą ir namą ir tikriausiai kai kiti dalykai, bet mes laikyti jį paprasta. Kiekvienas studentas turi savo vardą ir namą. Taigi, jei aš norėjau parašyti programa, kurios tikslas gyvenime buvo tik pakartoti iš nulio iki trijų, jei ten tris studentus Harvardo universitete. Ir aš tik noriu gauti naudojant GetString, kiekvieno studento vardas ir namo, ir tada tiesiog atsispausdinti tiems iš. Tai tarsi kaip savaitės Vienas, Savaitė Dvi stuff dabar kur tik noriu už kilpa ar kažkas panašaus. Ir aš noriu paskambinti GetString nedaugelis kartų, ir tada spausdinti f kelis kartus. Taigi, kaip aš galiu tai padaryti, nors, kai abu pavadinimas ir namai dalyvauja kiekvienam studentui? Taigi mano pirmasis instinktas might būti padaryti kažką panašaus į tai. Galėčiau pirmasis pasakyti, gerai, duok man, tarkim, eilučių, vadinamų pavadinimai masyvo. Ir aš nenoriu hardcode tris čia. Ką aš noriu ten įdėti? Taigi studentų, nes tai tik pastovus paskelbė viršuje, tiesiog taip aš neturiu hardcode trys keliose vietose. Tokiu būdu, aš galiu jį pakeisti vieną vietą, ir tai turi įtakos pokyčius visur. Ir tada, aš galėtų padaryti styginių namų studentams. Ir dabar, aš galėtų padaryti kažką panašaus už (int i = 0; i