[Zenelejátszás] David J. MALAN: Rendben. Ez CS50, és ez a a hét végén négy. És az egyik téma ma az, hogy a digitális kriminalisztika, A művészet az adatmentés. És valóban, bár te vagy a közepén most a béke a Three és a Breakout, jövő héten, a hangsúly a pontosan ezen a területen. Tehát az egyik legmenőbb munkahelyek én valaha az volt vissza a doktori iskola, amikor dolgoztam a helyi Middlesex County kerületi ügyész iroda, ezzel kriminalisztika működik. Tehát lényegében a Massachusetts Állami Rendőrség, alkalmanként, ha dolgozik az esetekről lenne hogy a dolgok, mint a merevlemezek és floppy lemezek és memóriakártyák és a hasonlók. És ők adják őket az én és a mentor, és a célunk az volt, hogy bizonyítékot találjanak, ha volt, ezeken a média. Nos, lehet, hogy láttam pillantások ennek a világnak a kriminalisztika A média, a TV és mozi. De a munka volt, és mondhatnám, hogy az a világ, nem egészen, mint te is látod. Vessünk egy pillantást, amit akkor már valószínűleg látott. [Videolejátszás] -OK. Most térjünk jól néz rád. [Zenelejátszás] Tartsd meg. Fuss vissza. Várj egy percet. Menj jobbra. -Ott. Freeze az. -Teljes Képernyőn. -OK. Freeze az. -Tighten Fel, hogy jó? -vector Be az fickó a hátsó kerék. -zoom Az itt, ezen a helyen. -with A megfelelő felszereléssel, a kép nagyítható és éles. Mi az? -Ez Egy tartozékot programot. -Tud Tiszta, hogy akár minden? -Nem Tudom. Nézzük fokozza azt. -Enhance § A6. Én jobb a részleteket, és-- -Szerintem Van elég, hogy fokozza. Engedje meg, hogy a képernyő. -I Fokozott a tükörképét szeme. -Reméljük Futtatásához át video javítása. -Edgar, Meg tudja erősíteni ezt? -Hang Tovább. -Én Már dolgozom a reflexió. -Van Valaki gondolkodás. Reflexió. -Van Tükrözi a férfi arcát. -A Elmélkedés! -Van Tükrözi. -zoom Az a tükör. Láthatjuk a reflexió. -Tud Fokozza a kép innen? -Tud Növeli meg? -Tud Növeli meg? -Tud Mozdítható ez? -Tud Növeli meg? Tartsd egy kicsit. Én fokozza. -zoom Be az ajtón. -Times 10. -zoom. Mozgás a. -több. Várj, állj meg. -stop. -Pause Azt. -Rotate Us 75 fok körül a függőleges, kérem. -stop. Menj vissza a rész az ajtót. -Van Kép fokozó, amely bitmap? Tán tudjuk használni a Pradeep Singh módszer, hogy a Windows. -A Szoftver a legkorszerűbb. -A Sajátérték ki. -with A jobb kombinációja algorithms-- -Nyitva Vett megvilágítás algoritmusok a következő szintre, és tudom használni őket, hogy fokozza ezt a fényképet. -Lock, És bővíteni a z-tengely. -Enhance. Fokozza. -Enhance. -Freeze És fokozza. [END Videolejátszás] David J. MALAN: Tehát ezek minden szót, de nem voltak használt mondatok helyesen. És valóban, a jövőben bármikor, Kérjük, hallod, hogy valaki azt a szót, "Fokozza", kuncogott egy kicsit. Mert amikor megpróbál növelése, Például, ez az, ami történik. Tehát itt van egy gyönyörű fénykép. Ez CS50 saját Daven. És tegyük fel, hogy mi volna hangsúly a csillogás a szemében, vagy az tükrözi a rossz srác, hogy egyértelműen által rögzített a biztonsági kamera. Ez az, ami történik, ha ráközelít egy kép csak véges számú bitek társul hozzá. Ez az, amit akkor kap. És valóban, a Daven szeme csupán négy, talán hat pixel alkotó pontosan mit volt ragyogó ott. Tehát Probléma Set Négy végül is felfedezni ezt a világot, különösen a természet valami nevezzük I / O, ahol i / o csak egy divatos módon mondván, input és output. Szóval eddig, mind a kölcsönhatások már volt egy számítógéppel jórészt a saját billentyűzet és a képernyő, de nem annyira a merevlemez, vagy mentés fájlok túl az is magad levelet. A programokat eddig is nem teremt, és mentés, és frissítése a saját fájljait. Nos, mi egy fájlt? Nos, valami hasonló a JPEG. Ez a kép lehet, hogy van, vagy feltölteni a Facebook, vagy nézze meg bárhol az interneten. Sőt, hogy fénykép mi csak saw of Daven volt a JPEG. És ami érdekes, a kép, mint a JPEG az, hogy azonosítani lehet, Általában bizonyos minták bit. Más szóval, mi az, ami megkülönbözteti a JPEG a GIF egy PING egy Word- dokumentum egy Excel file? Nos, ez csak más minták bit. És ezek a különböző minták általában az elején ezeket a fájlokat. Tehát, hogy ha a számítógép megnyitja a Word- doc, vagy ha a számítógép megnyitja a JPEG, úgy néz ki, jellemzően a első néhány bit a fájlban. És ha felismeri a minta, azt mondja, ó, ez egy kép. Hadd megjeleníteni a a felhasználó számára a grafikus. Vagy, ó, ez úgy néz ki, mint egy Word doc. Hadd mutassam meg, hogy a felhasználó, mint egy esszé. Így például, JPEG, kiderül, vannak meglehetősen bonyolult a motorháztető alatt. De az első három bájt a legtöbb minden JPEG kezdeni ezzel a három számot. Tehát byte nulla, egy, kettő és, a legtöbb minden JPEG, 255, majd a szám 216, akkor a szám 255. És mi leszel képes kezdeni ezzel a jövő héten valójában dugta alatt A motorháztető fájlokat, mint JPEG és mint a bitmap kép, és látta, mi mindig is ott volt, amíg ahogy már a számítógép segítségével. De mi van, általában nem írva, mint decimális számok, mint ez. Számítógépes szakemberek nem inkább beszélni tizedes. Nem igazán beszél bináris. Általában, ha azt akarjuk, kifejezni számok, mi ténylegesen használni hexadecimális, amely lehet felidézni , mondjuk, Problem Set Az egyik, amely kétségbe hogy gondoljon egy másik rendszer. Mi, persze, ismerős A tizedes, nulla és kilenc. Beszéltünk bináris. És nem igazán van használni, hogy sok itt a ki, mert a számítógép fogja használni. De programozók igen gyakran, de nem mindig, használni hexadecimális, ami csak azt jelenti, van 16 betű az ábécé, szemben a két vagy 10. Szóval hogyan lehet számolni, hogy a magasabb mint kilenc hexadecimális? Menj 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, csak a konvenció. De mi a kulcs az, hogy minden ezek közül egyetlen szimbólum. Nincs 10. Nincs 11, önmagában, mert minden a számjegyek, csak úgy, mint a decimális és csakúgy, mint a bináris, kéne egyetlen karakter, a konvenció. Annak érdekében, hogy akkor ez az ábécé van rendelkezésünkre álló hexadecimális. Szóval, mit csinál egy JPEG néz ki, ha volt, hogy írjon ki az első három bytes nem decimális, hanem, Például, amint hexadecimális? És miért hexadecimális még minden hasznos? Nos, egy gyors pillantást egy példát. Tehát, ha írok ki a bitek képviseli ezeket decimális numbers-- ez lehet egy kicsit rozsdás már néhány hete, de a bal oldali és a jobbra egy meglehetősen egyszerű. 255 volt a legnagyobb szám, amit jelenthet nyolc bit. Ez volt minden is. Tehát az egyetlen, aki enyhén érdekes a középső. És ha a fajta nem ki a matek, akkor következtetni, hogy valóban, ezt a mintát egy és nullát jelent 216. Úgyhogy csak kikötik a Most, hogy ezek a helyes. De miért is érdekes ez? Nos, egy byte, persze, nyolc bit. És kiderül, hogy ha úgy gondolja, Egy byte két darabokat négy bit, mint ez. Hadd adjunk egy kis helyet. Szóval mielőtt után. Már csak hozzá néhány fehér térben A megjelenítés kedvéért itt. Hogyan lehet, hogy most képviselt, mondjuk, hexadecimális minden quad bit, mindegyik a négy bit? Így például, a bal oldalon Most már 1111 bináris. Mi az, hogy a szám a decimális, ha nem ki a matek? Van az is hely, a kettes is, a négyes helyet, és a nyolcas helyen. Közönség: 15. David J. MALAN: Ez 15. Tehát, ha nem nyolc plusz négy plusz kettő plusz egy, kapunk 15. Így tudtam leírni az alábbi 15. 1111, de a lényeg itt hexadecimális, nem decimális. Tehát ahelyett, hogy leírom, 15, 1-5, Fogok írni, hogy a hex, amely ha úgy gondolja, vissza, ha van nulla és f, mi 15 lesz? Közönség: f. David J. MALAN: Kiderült, hogy a f. És akkor a munka, hogy ki mondja, Nos, ha a 10, majd az OK gombra, f 15. Tehát valóban tudtuk átírni ez ugyanazokat a számokat f f. És aztán, ha teszünk egy kis matematika, fogjuk következtetni, hogy ez a d. Eight elég könnyű, mert Van egy a nyolcas helyen. Aztán, van egy pár f f a. Tehát, amit az emberek általában nem az egyezmény ha az általuk használt hexadecimális is, hogy csak írom ezt egy kicsit tömören, megszabadulni a legtöbb a fehér térben. És csak hogy szuper világos olvasó, hogy ez hexadecimális, az egyszerű egyezmény között emberekben írsz nulla x, aminek nincs értelme más mint a vizuális azonosítója, itt jön egy hexadecimális szám. És akkor, akkor tegye a két számjegy, f Ebben az esetben az F, majd egy d, akkor f f. Tehát hosszú történet rövid, hexadecimális csak hajlamos hasznos lehet, mivel minden egyes számjegy, nulla és f, tökéletesen vonalak fel a minta négy bit. Tehát, ha van két számjegy, nulla a F, újra és újra, hogy ad tökéletesen nyolc bit vagy egy byte. Szóval ezért hajlamos hagyományosan lehet hasznos. Nincs szellemi tartalom nagyon túl, más, mint a tényleges hasznosságát. Most JPEG nem csak fájl formátumokat grafika. Lehet, emlékeztetnek arra, hogy vannak kép, mint ez a világ, legalább egy pár évvel ezelőtt. Tehát ez valójában telepített Windows XP több millió PC-k szerte a világon. És ez volt a bitmap fájlt, BMP. És egy bitmap fájlt, ahogy látni fogod a következő hét, csak azt jelenti, egy minta a pontok, pixel, mint ők nevezik, A térkép a bitek, tényleg. Szóval, mi az érdekes, bár, a fájl formátum, BMP, a hogy a motorháztető alatt, az több mint három bájt alkotó a fejléc, így beszélni, az első pár falatot. Ez valójában úgy néz ki, egy kicsit bonyolultnak első pillantásra. És látni fogod ezt a P halmaz. És kezd valamit különösen ki most nem olyan fontos, mint éppen az a tény, hogy az elején minden bitmap fájl grafikus formátum, van egy csomó számot. Most a Microsoft, a szerzője ezt a formátumot, szokta így hívni azokat dolgok nem ints és karakter és úszik, de a szavak és d szavak és vágyik és bájt. Tehát ők csak különböző adattípusok. Ők különböző nevek ugyanazt a dolgot. De látni fogod, hogy a P meg négy. De ez csak azt jelenti, hogy ha az emberi dupla kattintás néhány .bmp az ő vagy a merevlemez, és egy ablak nyílik meg feltüntetve neki a kép, hogy azért történt, mert a működési rendszer valószínűleg észre nem csak a bmp fájl kiterjesztését a fájl neve, hanem az a tény, hogy van néhány egyezmény a minta bitek a kezdet kezdetén Az, hogy a bitmap fájlt. De nézzük most összpontosítani ilyen bonyolult fájl hanem valami, mint ez. Tegyük fel, hogy itt GEdit, I Csak a kezdet Egy program, ami nagyon egyszerű. Van néhány tartalmaz felfelé tetején. Most kaptam #include "structs.h", de Majd gyere vissza, hogy egy pillanatra. De ez hasznos most. Tehát ez egy olyan program, hogy fog végrehajtani mint az anyakönyvvezető az adatbankjában tárol. Így egy adatbázist a diákok, és minden diák a világ van neve, és a házat, és talán néhány más dolog, de majd tartsa egyszerű. Minden hallgató neve és a házat. Tehát, ha azt akartam írni egy programot, amelynek a célja az életben Csak a közelítéseket a nulla három, ha van három diák a Harvard Egyetemen. És én csak azt szeretném, hogy segítségével getString, minden diák nevét és a ház, és aztán csak nyomtassa ki azokat. Ez az a fajta, mint hét Egy, Két hét dolog most, ahol csak akar a számára hurok vagy valami ilyesmi. És szeretném hívni getString néhány alkalommal, majd nyomtassa f néhányszor. Szóval, hogyan lehet, hogy én ezt, mégis, amikor mind a nevét és a ház vesz részt minden hallgató? Tehát az első gondolatom talán lehet tenni valamit, mint ez. Lehet, hogy először azt mondják, jó, hogy nekem, mondjuk, egy sor húrok hívott neveket. És én nem akarok a Bedrótozhatsz három itt. Amit akarok, hogy ott? , Hogy a diákok, mert ez csak állandó nyilvánította a tetején, csak azért, hogy ne kelljen Bedrótozhatsz Három több helyen. Így tudok változtatni egy helyen, és ez hatással van a változás mindenhol. És akkor talán nem karakterlánc otthont versenyző. És most, talán valami hasonló for (int i = 0; i