[CHWARAE CERDDORIAETH] DAVID J. Malan: pob hawl. Mae hyn yn CS50, ac mae hyn yw diwedd Wythnos Pedwar. Ac un o'r pynciau heddiw yw hynny o fforensig digidol, y grefft o adfer gwybodaeth. Ac yn wir, er bod ydych chi yn y canol ar hyn o bryd Heddwch yn Three a Breakout, yr wythnos nesaf, Bydd y ffocws ar union y parth hwn. Felly, un o'r swyddi coolest mi erioed Roedd yn ôl yn yr ysgol i raddedigion, pan oeddwn yn gweithio ar gyfer yr leol Middlesex Sir Dosbarth Twrnai swyddfa, yn gwneud fforensig yn gweithio. Felly y bôn, mae'r Massachusetts Heddlu y Wladwriaeth, ar adegau, wrth weithio ar achosion byddai dod mewn pethau fel 'n anawdd drives a disgiau hyblyg a cardiau cof ac yn y blaen. A byddent yn eu llaw i mi a fy mentor, ac mae ein nod oedd dod o hyd i dystiolaeth, os oedd unrhyw, ar y cyfryngau hyn. Cipolwg Nawr, efallai eich bod wedi gweld o y byd hwn o fforensig yn y cyfryngau, teledu a ffilmiau. Ond mae'r swydd oedd gen, a debygol iawn y byd, Nid yw union fel y byddech yn ei weld. Gadewch i ni edrych ar yr hyn mae'n debyg eich bod wedi ei weld. [VIDEO Playback] -OK. Yn awr, gadewch i ni gael edrych yn dda ar chi. [CHWARAE CERDDORIAETH] -Hold Iddo. Rhedeg y cefn. -Wait Funud. Ewch i'r dde. -Mae. Rhewi hynny. -Full-Sgrîn. -OK. Rhewi hynny. -Tighten Fyny ar hynny, a wnewch chi? -Vector Mewn ar hynny guy gan yr olwyn gefn. -Zoom Mewn dde yma ar y fan a'r lle hwn. -With Yr offer cywir, mae'r Gellir ddelwedd gael ei chwyddo a hogi. -Beth Yw hwnna? -Mae'n 'An rhaglen wella. -Can Ydych yn glir bod unrhyw? Nid -Rwy'n ddim yn gwybod. Gadewch i ni wella. -Enhance Adran A6. Yr wyf yn gwella y manylion, ac-- -Rwy'n Credu bod digon i wella. Rhyddhau i fy sgrin. Gwella -I adlewyrchiad yn ei llygaid. -Let Ei redeg hyn drwy gwella fideo. -Edgar, Gallwch wella hyn? -Hang Ar. -I've Bod yn gweithio ar fyfyrio hwn. Adlewyrchiad rhywun -Mae yn. Reflectiar. -Mae Yn adlewyrchiad o wyneb y dyn. Adlewyrchiad -Y! -Mae Yn adlewyrchiad. -Zoom I mewn ar y drych. Gallwch weld adlewyrchiad. -Can Byddwch gwella delwedd o fan hyn? -Can Chi ei wella? -Can Chi ei wella? -Can Ni'n gwella hyn? -Can Chi ei wella? -Hold Ar ail. 'N annhymerus' yn gwella. -Zoom I mewn ar y drws. -Times 10. -Zoom. -Move Mewn. -Mwy. -Wait, Rhoi'r gorau. -Stop. -Pause Iddo. -Rotate 75 gradd ni o amgylch y fertigol, os gwelwch yn dda. -Stop. Ewch yn ôl at y rhan am y drws unwaith eto. -Got Enhancer delwedd bitmap a all? -Maybe Gallwn ddefnyddio'r Pradeep Singh dull i weld i mewn i'r ffenestri. -Y Meddalwedd yn gyflwr y celf. -Y Eigenvalue i ffwrdd. -With Yr hawl cyfuniad o algorithms-- -He Yn cymryd golau algorithmau i'r lefel nesaf, a gallaf eu defnyddio i gwella'r y llun. -Lock Ar ac ehangu'r z-echel. -Enhance. Gwella. -Enhance. -Freeze A gwella. [DIWEDD Playback VIDEO] DAVID J. Malan: Felly dyna'r pob gair, ond nid oeddent yn ddefnyddir mewn brawddegau yn gywir. Ac yn wir yn y dyfodol, unrhyw bryd, os gwelwch yn dda, byddwch yn clywed rhywun yn dweud y gair, "Gwella," chwerthin dim ond ychydig bach. Oherwydd pan fyddwch yn ceisio gwella, er enghraifft, mae hyn yn beth sy'n digwydd. Felly dyma llun hyfryd. Mae hyn yn Daven CS50 ei hun. Ac mae'n debyg ein bod yn awyddus i canolbwyntio i mewn ar y twinkle yn ei lygad, neu adlewyrchiad y dyn drwg a oedd yn amlwg eu dal gan y camera diogelwch. Mae hyn yn beth sy'n digwydd pan chi chwyddo i mewn ar ddelwedd sy'n Mae dim ond nifer cyfyngedig o ddarnau sy'n gysylltiedig ag ef. Dyna'r hyn y byddech yn ei gael. Ac yn wir, yn y llygad Daven yn yw ond pedwar, efallai chwe picsel sy'n cyfansoddi yn union beth Roedd glimmering yno. Felly bydd Problem Set Pedwar yn y pen draw yn cael chi edrych ar y byd hwn, yn enwedig yn ôl natur yr rywbeth rydym yn galw ffeil i / o, lle i / o yn unig yw ffordd ffansi o ddweud mewnbwn ac allbwn. Hyd yn hyd yn hyn, pob un o'r rhyngweithiadau rydym wedi cael gyda chyfrifiadur wedi bod i raddau helaeth gyda'ch bysellfwrdd a sgrin, ond nid cymaint ag y ddisg galed, neu arbed o ffeiliau y tu hwnt i'r rhai yr ydych ysgrifennu eich hun. Mae eich rhaglenni hyd yn hyn wedi Nid yw bod yn creu, ac yn arbed, ac yn diweddaru eu ffeiliau eu hunain. Wel, beth yw ffeil? Wel, rhywbeth fel JPEG. Mae hwn yn ddelwedd rydych efallai wedi neu llwytho i Facebook, neu'n gweld yn unrhyw le ar y we. Yn wir, llun yr ydym newydd ei Gwelodd o Daven yn JPEG. A beth sy'n ddiddorol am ffeiliau fel JPEG yw y gellir eu hadnabod, nodweddiadol, gan batrymau penodol o ddarnau. Mewn geiriau eraill, yr hyn yw hi y gwahaniaethu JPEG o GIF o PING o Word dogfen o ffeil Excel? Wel, 'i' jyst yn wahanol patrymau o ddarnau. A phatrymau gwahanol hynny yn fel arfer ar ddechrau ffeiliau hynny. Felly, pan fydd eich cyfrifiadur yn agor Word doc, neu pan fydd cyfrifiadur yn agor JPEG, mae'n edrych fel arfer yn y nifer o ddarnau cyntaf yn y ffeil. Ac os ei fod yn cydnabod yn batrwm, y mae'n ei ddweud, oh, mae hyn yn ddelwedd. Gadewch i mi arddangos i y defnyddiwr fel graffig. Neu, oh, mae hyn yn edrych yn debyg i doc Word. Gadewch i mi ddangos i'r defnyddiwr fel traethawd. Felly, er enghraifft, JPEG, mae'n troi allan, yn cael eu eithaf soffistigedig o dan y cwfl. Ond mae'r tri bytes cyntaf yn y rhan fwyaf mhob JPEG yn dechrau gyda y tri rhif. Felly beit sero, un, a dau ohonynt, yn y rhan fwyaf o bob JPEG, 255, yna bydd y nifer 216, yna bydd y rhif 255. A beth byddwch yn gallu i ddechrau yn ei wneud yr wythnos nesaf mewn gwirionedd yn procio o dan y cwfl o ffeiliau fel JPEG ac fel ffeiliau didfap, a gweld yr hyn bob amser wedi bod yno am gymaint o amser fel yr ydych wedi bod yn defnyddio cyfrifiadur. Ond yr hyn sy'n nad oes fel arfer ysgrifennu fel rhifau degol fel hyn. Nid yw gwyddonwyr cyfrifiadurol yn ei wneud yn tueddu i siarad yn y degol. Nid ydynt yn wir yn siarad yn deuaidd. Yn nodweddiadol, pan fyddwn am i fynegi rhifau, yr ydym mewn gwirionedd yn defnyddio hecsadegol, y gallwch cofio o, dyweder, Datrys Set Un, a heriodd chi feddwl am system wahanol. Yr ydym, wrth gwrs, yn gyfarwydd gyda degol, sero drwy naw. Buom yn siarad am deuaidd. Ac nid ydym ddim yn cael i ddefnyddio bod llawer yma ar y tu allan, oherwydd bydd cyfrifiaduron defnyddio hynny. Ond bydd rhaglenwyr iawn Yn aml, ond nid bob amser, defnyddio hecsadegol, a dim ond yn golygu mae gennych 16 llythyr yn eich wyddor, yn hytrach na dau neu 10. Felly, sut ydych chi'n cyfrif at uwch na naw yn hecsadegol? Rydych yn mynd 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, dim ond drwy confensiwn. Ond yr hyn sy'n allweddol yw bod pob o'r rhain yn symbol sengl. Nid oes unrhyw 10. Nid oes 11, fel y cyfryw, oherwydd bod gan bob o'ch digid, yn union fel yn y degol ac yn union fel yn deuaidd, dylai dim ond fod yn gymeriad sengl, yn ôl confensiwn. Fel bod yna yw'r wyddor sydd gennym ar gael i ni ar gyfer hecsadegol. Felly beth mae JPEG edrych fel os ydych yn oedd i ysgrifennu allan y rhai tri cyntaf Nid bytes fel degol, ond, er enghraifft, fel hecsadegol? A pham mae hecs hyd yn oed bob un sy'n ddefnyddiol? Wel, edrych yn sydyn ar enghraifft. Felly, os wyf yn ysgrifennu darnau sy'n cynrychioli numbers-- degol hyn gallai hyn fod ychydig yn rhydlyd bellach o ychydig wythnosau yn ôl, ond yr un ar y chwith a'r un cywir yn eithaf hawdd. 255 oedd y nifer mwyaf yr ydym Gallai gynrychioli gydag wyth darnau. Yr oedd yr holl rai. Felly, yr unig un sy'n ychydig ddiddorol yw'r un canol. Ac os ydych yn fath o yn ei wneud allan y mathemateg, byddwch yn diddwytho hynny, yn wir, y patrwm hwnnw o un a seroau yn cynrychioli 216. Felly gadewch i ni dim ond nodi am nawr bod y rhain yn gywir. Ond pam mae hyn yn ddiddorol? Wel, mae beit, wrth gwrs, yw wyth did. Ac mae'n troi allan, os ydych yn meddwl o beit fel dau darnau o bedwar ddarnau, fel hyn. Gadewch imi ychwanegu rhywfaint o le. Felly, cyn, ar ôl. Rwyf newydd ychwanegu ychydig o le gwyn er mwyn delweddu yma. Sut y gallem nawr yn cynrychioli mewn, dyweder, hecsadegol pob cwad o ddarnau, pob set o bedwar ddarnau? Felly, er enghraifft, ar y chwith Erbyn hyn, mae gennym 1,111 yn deuaidd. Beth yw y rhif hwnnw yn degol, os ydych yn gwneud allan y cwestiwn? Mae gennych y lle rhai, y lle fesul dau, y lle pedwar, a'r lle wyth. CYNULLEIDFA: 15. DAVID J. Malan: Mae'n 15. Felly, os ydym yn ei wneud wyth a phedwar a dau ac un, rydym yn cael 15. Felly gallwn ysgrifennu i lawr 15 isod 1111, ond holl bwynt yma yn hecsadegol, nid degol. Felly, yn lle ysgrifennu i lawr 15, 1-5, Rydw i'n mynd i ysgrifennu hynny mewn hecs, ac os ydych yn meddwl yn ôl, os oes gennych sero drwy f, yr hyn sy'n 15 mynd i fod? CYNULLEIDFA: f. DAVID J. Malan: Felly, mae'n troi allan ei fod yn f. A gallwch weithio hynny allan drwy ddweud, yn dda, os yw yn 10, yna OK, f yw 15. Felly yn wir, gallem ailysgrifennu hyn yn un set o rifau fel f f. Ac yna, os ydym yn gwneud ychydig o mathemateg, byddwn yn dewch i'r casgliad fod hynny'n d. Wyth yn eithaf hawdd, oherwydd ein cael un yn y lle wyth. Ac yna, mae gennym gwpl mwy o f f yn. Felly, beth mae pobl yn tueddu i wneud yn ôl confensiwn pan fyddant yn defnyddio hecsadegol yw maent ond ysgrifennu hyn ychydig yn fwy cryno, cael gwared ar y rhan fwyaf o'r gofod gwyn. A dim ond i fod yn super glir i darllenwyr fod hyn yn hecsadegol, y confensiwn syml ymhlith bodau dynol yn cael i ysgrifennu sero x, sydd heb unrhyw ystyr arall na dynodwr gweledol, yma hon rhif hecs. Ac yna, byddwch yn rhoi y ddau ddigid, f f yn yr achos hwn, yna d yn, yna f f. Mor fyr stori hir, hecsadegol yn unig yn tueddu i fod yn ddefnyddiol gan fod pob un o'i digid, sero drwy f, berffaith llinellau i fyny gyda phatrwm o bedwar ddarnau. Felly os oes gennych ddau ddigid hecsadegol, sero drwy F, dro ar ôl tro, sy'n rhoi i chi berffaith wyth darnau neu un beit. Felly dyna pam ei bod yn tueddu i fod yn gonfensiynol ddefnyddiol. Does dim deallusol cynnwys gwirioneddol y tu hwnt i hynny, ac eithrio ei cyfleustodau gwirioneddol. Nawr nid JPEG yw'r unig ffeilio fformatau ar gyfer graffeg. Efallai y byddwch yn cofio bod yna ffeiliau fel hyn yn y byd, o leiaf o rai blynyddoedd yn ôl. Felly, mewn gwirionedd roedd hyn yn gosod i mewn Ffenestri XP ar filiynau o gyfrifiaduron ar draws y byd. Ac roedd hyn yn ffeil didfap, BMP. A ffeil bitmap, fel y byddwch yn gweld nesaf wythnos, dim ond yn golygu patrwm o ddotiau, picsel ag y maen nhw'n gelwir, a map ar ddarnau, mewn gwirionedd. Felly, yr hyn sy'n ddiddorol, fodd bynnag, am y fformat ffeil hwn, BMP, mae bod o dan y cwfl, mae'n wedi mwy na dim ond tri bytes hynny cyfansoddi ei header, felly i siarad, yr ychydig brathiadau cyntaf. Mae'n mewn gwirionedd yn edrych ychydig yn gymhleth ar yr olwg gyntaf. A byddwch yn gweld hyn yn y P a osodwyd. Ac yn cael rhywbeth allan arbennig o hyn yn awr Nid yw mor bwysig, fel dim ond y ffaith hynny ar ddechrau pob didfap ffeil, fformat graffigol, mae criw cyfan o rifau. Nawr Microsoft, mae'r awdur y fformat hwn, tueddu i alw y rhai pethau nad ints a chars a fflotiau ond geiriau a d geiriau a hiraethu a bytes. Felly, maen nhw jyst gwahanol fathau o ddata. Maen nhw'n enwau gwahanol am yr un peth. Ond byddwch yn gweld bod yn P Set Four. Ond dim ond i ddweud os yw dynol dwbl-cliciau rhywfaint ffeil .BMP ar ei neu hi 'n anawdd cathrena, a ffenestr yn agor fyny ddangos iddo neu iddi fod ddelwedd, a ddigwyddodd oherwydd bod y gweithredu system yn sylwi yn ôl pob tebyg, nid yn unig estyniad ffeil .BMP yn enw'r ffeil, ond hefyd y ffaith bod mae rhywfaint confensiwn i batrwm o ddarnau ar y dechrau o'r ffeil didfap. Ond gadewch i ni bellach yn canolbwyntio ar ffeil o'r fath yn gymhleth, ond yn hytrach ar rywbeth fel hyn. Gadewch i ni dybio yma yn Gedit, yr wyf yn dim ond yn cael y dechreuadau o raglen sy'n eithaf syml. Rwyf wedi cael rhai yn cynnwys hyd top. Nawr mae gen i #include "structs.h" ond 'N annhymerus' yn dod yn ôl at hynny mewn munud. Ond mae hyn yn ddefnyddiol am y tro. Felly, mae hon yn rhaglen sy'n mynd i weithredu fel cronfa ddata y cofrestrydd. Felly cronfa ddata o fyfyrwyr, a phob myfyriwr yn y byd Mae enw a thŷ ac yn ôl pob tebyg rhai pethau eraill, ond byddwn yn cadw pethau'n syml. Mae pob myfyriwr yn cael enw a thŷ. Felly os oeddwn i eisiau ysgrifennu rhaglen sydd â'r diben mewn bywyd Roedd dim ond i ailadrodd o sero ar hyd at dri, os oes tri myfyriwr ym Mhrifysgol Harvard. Ac yr wyf am gael, gan ddefnyddio GetString, enw a dy pob myfyriwr, ac yna dim ond argraffu'r rheiny allan. Mae hyn yn fath o fel Wythnos Un, Wythnos Dau pethau yn awr, ble Fi jyst eisiau i dolen neu rywbeth fel 'na. Ac yr wyf am alw GetString ychydig amserau, ac yna ei argraffu f ychydig o weithiau. Felly, sut y gallwn wneud hyn, fodd bynnag, pan fydd y ddau enw a thŷ yn cael eu cynnwys ar gyfer pob myfyriwr? Felly, efallai fy ngreddf gyntaf fod yn gwneud rhywbeth fel hyn. Efallai fy mod yn gyntaf yn dweud, yn dda, yn rhoi i mi, dweud, amrywiaeth o llinynnau galw enwau. Ac nid oes arnaf eisiau i hardcode tri yma. Beth ydw i am ei roi yno? Felly MYFYRWYR, oherwydd bod yn unig gysonyn datgan ar y brig, yn unig fel nad oes rhaid i mi hardcode tri mewn mannau lluosog. Fel hyn, gall yr wyf yn newid yn un lle, ac mae'n effeithio ar newid ym mhob man. Ac yna, efallai y byddwn yn ei wneud llinyn yn gartref MYFYRWYR. Ac yn awr, efallai y byddwn yn gwneud rhywbeth fel am (int i = 0; ff