[Powered by Google Translate] [Week 7] [David J. Malan - Università ta 'Harvard] [Dan huwa CS50. - CS50.TV] Kull dritt. Merħba lura. Dan huwa CS50, u dan huwa l-bidu tal-ġimgħa 7. Koppja ta 'avviżi ftit: Pset5 issa hija fil-progress, jew dalwaqt se jkunu, u let me say, pjuttost onestament, dan ma għandhom tendenza li jkunu fost l-aktar ta 'sfida ta 'settijiet problema tal-kors, hekk let me jsemmi dan issa sabiex din il-ġimgħa aktar minn qatt qabel inti ma stenna sakemm, ngħidu, l-Erbgħa bil-lejl jew tal-lejl il-Ħamis li adsa pulzieri Dan huwa definittivament pset interessanti. Aħna naħsbu huwa gost. Jekk inti fil-fatt tikseb bis-sħiħ korrett u jista 'mbagħad tikkontesta l-Bord hekk imsejħa Big, inti ser ikollok l-opportunità biex jaqblu wits ma 'wħud mill-persunal tal-kors tal- u xi wħud klassi tiegħek. Liema Il-Bord Big huwa huwa ladarba inti għandek jespliċitaw-kontrollur xogħol tiegħek, inti ser tkun tista 'tmur cs50.net wara tmexxija ta' kmand, purament opt ​​in, u allura l-ammont ta 'ħin u l-ammont ta' RAM u aktar li inti użajt fl-implimentazzjoni tiegħek ser ikunu esibiti hawn fuq home-page-kors tal-. Int ser ikollok avviż li mazz sħiħ ta 'dawn folks hawn huma elenkati bħala staff peress li matul il-weekend, il-persunal ħsibt li jkun gost li jippruvaw outdo xulxin. Allura jirrealizzaw li l-għan hawnhekk huwa li ma outdo l-istaff. Anke jiena biss hawn fil-numru 13. Purament opt ​​in, iżda huwa opportunità biex tara kemm RAM ftit u kif ftit sekondi CPU tista 'tuża vis-a-vis xi klassi tiegħek. U jien ser jammettu li Schmid Michael Kevin, bħalissa fl-1 numru, pożizzjoni bħala waħda mill-TFS, dan huwa implimentazzjoni li nitolbu ma jkunx possibbli peress li hu użu kważi 0 RAM u kważi 0 sekondi għat-tagħbija. Allura aħna ser jieħdu ħsieb ta 'offline Kevin. [Daħk] Hemm ċerti ħiliet li Kevin huwa tqegħid għat-test hawn. Waħda mill-affarijiet ħsibna aħna'd tagħmel wisq issa hija CS50x huwa ġimgħa fil-progress, u inti guys huma kemm parti ta 'dan l-esperiment bħala dawk l-istudenti huma. Imxejna talbithom bħala parti mill pset0 tagħhom, li kien simili li jissottomettu proġett Scratch ta 'interess għalihom - logħba, biċċa interattiv ta' l-arti, animazzjoni, jew simili - ta '1 - video sa 2 minuti, jekk huma jixtiequ, qal bonjour lill-dinja u li huma attwalment huma. Ħsibt I d jaqsmu miegħek biss ftit mill-videos li ġew ippreżentati s'issa għaliex għalina, fuq il-persunal mill-inqas, huwa verament kien eċċitanti u jispira biex tara dawn folks minn madwar id-dinja - pajjiżi kollha madwar id-dinja - irfinar fi, tal-affarijiet kollha, għal kors xjenza tal-kompjuter fuq l-Internet, jekk huwa minħabba li jkunu jridu jkomplu l-istudji tagħhom, jkunu jridu jieħdu karrieri tagħhom f'direzzjoni ġdida, huma jridu jimlew il-lakuni fl-għarfien tagħhom stess, sabiex xi wħud mir-raġunijiet istess li inti guys forsi kienu hawn. So I jagħtuk waħda student bħal hawn. Inti tista 'tgħolli l-volum biss ftit. Hawnhekk huwa wieħed mill-istudenti tagħna 1-minuta sottomissjonijiet. Hello. Dinja, I am a student ta 'l-inġinerija industrijali hawn f'Malaga, Spanja. I am eċċitati dwar dan il-kors onlajn minħabba I love xjenza tal-kompjuter, I really do, u jien verament japprezzaw li niġi biex jesploraw dan. U l-fatt li I jistgħu jitgħallmu l-istess kollha inti guys do iżda minflok li jkunu fil-Harvard I am f'Malaga, kif biża huwa li? Well, I am Fernando, u dan huwa CS50. Ara inti guys. [Rires] Ieħor clip aħna partikolarment simili, inti ser issib li l-Ingliż dan il-gentleman hija mhux daqshekk qawwi. Jidher qisu kellu tradotti magna li, sabiex l-traduzzjonijiet nfushom huma daqsxejn imperfetta, iżda dan kien wieħed mill-favoriti tagħna s'issa kif ukoll. [♪ ♪] Hello. Dinja, [Jitkellem fil-Ġappuniż] [Għandi biex insellem fl-Ġappuniż minħabba l-Ingliż tiegħi hija ħafna affidabbli.] [I jkunu taw il-messaġġ li inti mill-belt ta 'Gifu, Ġappun.] [I jista 'jkun student għall-ewwel darba fl-20 sena, kif jista' jidher.] [I am very grat lejn Harvard University li tatni din l-opportunità u EDX.] [Golf hija kitarra u ħaġa favorit tiegħi running.] [Rires] [♪ ♪] [Għaliex taħseb I kien qed jipprova biex jattendu cs50x.] [Università ta 'Harvard, huwa longing tiegħi.] [Speċjalment jekk jiena preżenza bogħod għexet fil-Ġappun.] [I riedu jippruvaw immedjatament konxji tal-eżistenza ta 'tali EDX meta.] [Ma taħsibx sabiex inti ma relatata mal-età ta 'tagħlim I.] [Cs50 huwa longing tiegħi. Jisimni Kazu, u dan huwa cs50.] [♪ ♪] [applause u cheering] Ieħor favorit ta 'tagħna kienet din is-sottomissjoni hawn minn xi ħadd. [♪ ♪] [Malan] Google jekk int familjari ma 'dan même. U mbagħad fl-aħħar, koppja ta 'oħrajn li ltqajna stazzjonati li forsi tirbaħ il-premju adorable. [Studenti] AWW! >> [Malan] Aħna ser ikollhom biex tisma. Dan huwa qasir, sabiex jisimgħu mill-qrib. [Kelliem femminili] X'hemm isem tiegħek? >> Louie. [Kelliem femminili] X'hemm dan? >> [Giggles] CS50. [Daħk] [Malan] Hu ma 2 jieħu, għalkemm. Here we go, l-aħħar. Jisimni Louie, u dan huwa CS50. [Rires] Dan allura huwa CS50x. Grazzi lil dawk kollha minnkom waqt li ssegwi tul fid-dar li ġew parteċipazzjoni tagħhom f'kawża s'issa. Illum, aħna nikkonkludu diskussjoni tagħna ta 'strutturi tad-data, anqas uħud mill-aktar fundamentali, u allura aħna tkompli konversazzjoni tagħna dwar HTML u l-ipprogrammar tal-web. Tabilħaqq, aħna ħadthom jintefqu l-aħħar ftit ġimgħat 7 tħares lejn l-elementi fundamentali ta 'programmazzjoni - algoritmi, strutturi ta 'data, u simili - u C, kif jista 'jkollok esperjenza s'issa, mhuwiex neċessarjament l-aktar aċċessibbli tal-lingwi li biex timplimenta uħud minn dawn l-ideat. U hekk jibda din il-ġimgħa u ġimgħa d-dieħla u mbagħad dawn li ġejjin, aħna ser finalment ikunu jistgħu transizzjoni minn Ċ, li hija ġeneralment magħrufa bħala lingwa pjuttost ta 'livell baxx, għal affarijiet livell ogħla, fosthom PHP, JavaScript, u ​​simili, li aħna ser tara timxi fuq l-istess lezzjonijiet li aħna stajt tgħallmu matul l-aħħar ftit ġimgħat, imma inti ser issib li tiddikjara affarijiet simili matriċi u tabelli hash u tiftix u għażla tant sar ħafna aktar faċli minħabba li l-lingwi nfushom aħna ser tibda tuża se jsiru aktar qawwija. Iżda l-ewwel, applikazzjoni ta 'siġar. Huwa komuni ħafna f'dawn il-jiem li jeħtieġu li jikkompressa informazzjoni. F'liema kuntest kieku inti tixtieq li jikkompressa xi tip ta 'informazzjoni diġitali? Yeah. >> [Student] Meta għandek bżonn biex tibgħat fuq il-Web. Yeah, meta inti tixtieq li tibgħat xi ħaġa fuq il-Web. Jekk inti tixtieq li tniżżel fajl kbir, huwa ideali jekk xi ħadd fuq il-tarf l-ieħor ikun kompressata dan il-fajl bl-użu ta 'format zip jew xi ħaġa bħal dik sabiex int tibgħat bits inqas milli kieku jiġu trasmessi. Allura kif taħseb li jikkompressa-informazzjoni? Hija kollha jeħodna għall-użu bits inqas minn dawk meħtieġa mill-kontumaċja. Imma dan huwa tip ta 'ħaġa kurjużi għaliex taħseb lura għal ġimgħat 0 u 1 meta tkellimna dwar ASCII u binarja u tkellimna dwar ASCII b'mod partikolari kif jużaw 8 bits biex jirrappreżentaw ittri tal-alfabett b'tali mod li l-ittra A huwa rappreżentat minn 65, zghar li huwa n-numru 97, u madankollu inti jirrappreżentaw il-65 jew 97, inti qed tuża 7 jew 8 bits. Iżda l-qabda hija li hemm xi ittri fl-alfabett Ingliż li mhumiex popolari kif oħrajn. Z hija mhux kollha li popolari, Q mhux kollha li popolari, iżda A u E huma super popolari. And yet għall kollha ta 'dawn l-ittri, awtomatikament id-dinja juża l-istess numru ta' bits, biss 8. Għalhekk ma kienx ikun ikun aktar intelliġenti kieku minflok jużaw 8 bits għal kull ittra, anke l-aktar spiss użati bħall Q u Z, dak jekk aħna użati bits inqas għal A u E u S u l-ittri l-aktar popolari u użati bits aktar għall-ittri anqas popolari, l-idea hija jottimizzaw ejja għall-każ komuni, li hija tema fix-xjenza tal-kompjuter ta 'tipprova li jottimizzaw dak li għaddej biex jiġri l-aktar u jqattgħu ftit ħin iktar, ftit spazju aktar fuq l-affarijiet li, yeah, jista 'jiġri iżda mhux neċessarjament bħala spiss. Mela ejja jieħdu l-eżempju. Ejja ngħidu li aħna rridu li encode informazzjoni pjuttost b'mod effiċjenti. Inti jista kibru jafu ftit xi ħaġa dwar kodiċi Morse, u odds huma inti ma taf il-kodiċi attwali, imma int tista 'recall li huwa mill-inqas din is-serje ta' tikek u daxxijiet. Din hija kodifikazzjoni pjuttost effiċjenti, u avviż li l-ittra l-aktar popolari - pereżempju, E - juża l-iqsar beeps. Morse code huwa kollha dwar ħoss ħoss-ħoss-ħoss-ħoss-ħoss-u ż-żamma tones jew għal perjodi qosra ta 'żmien jew perjodi twal ta' żmien. E, kif murija bis-dot, huwa ħoss qasir super, biss ħoss, u li tkun tirrappreżenta E. B'kuntrast, T tkun ħoss itwal, bħal ħoss [itawwal ħoss], u li jkun jirrappreżenta T. Imma dak li għadu pjuttost qasir għaliex, għall-kuntrarju, jekk inti tħares lejn Z, biex jesprimu Z inti tmur, ħoss ħoss [itwal ħoss], ħoss, ħoss [ħoss iqsar]. Allura huwa itwal għaliex dan huwa inqas komuni. Iżda l-gotcha hawnhekk hija li Morse code huwa daqsxejn difettuż f'dak mhuwiex immedjatament decodable. Per eżempju, ejja ngħidu li inti tisma 'fuq xi tmiem tal-ħoss tal-wajer [qasira], ħoss [twil]. What messaġġ ma I biss tirċievi? A dot u sing. Xi jfisser li jirrappreżenta? [Student] A. >> [Malan] Forsi. Jista 'jkun ukoll E segwit minn T. Fi kliem ieħor, kodiċi Morse, għalkemm tiggwida dan il-prinċipju jiġi ottimizzat l-każ kantuniera, ma tagħtix lok għal decodability immedjat. Dan huwa, il-bniedem li qed tisma 'jew jirċievu dawn tikek u daxxijiet għandha b'xi mod insemmu fejn il-pawżi huma bejn ittri, għaliex jekk inti ma tafx fejn dawk pawżi huma, inti tista 'jikkonfondi A għal ET jew viċi versa. Allura dak li jista inti tagħmel? Fil kodiċi Morse inti tista 'biss nieqaf bejn kull wieħed mill-ittri. Imma jieqaf huwa tip ta 'kontra l-punt kollu ta' tħaffif affarijiet up. Allura dak li jekk minflok aħna ħareġ bi code fejn ma kienx hemm din is-sitwazzjoni ħażina fejn E huwa prefiss, per eżempju, ta 'A - fi kliem ieħor, jekk nistgħu niżguraw li l-mudelli għadhom qosra għall-ittri popolari twil għall-ittri anqas popolari, iżda hemm ebda konfużjoni possibbli? Raġel mill-isem ta Huffman snin ilu vvinta din l-iskema msejħa Huffman kodifikazzjoni li attwalment tiggwida waħda mill-istrutturi tad-data konna qattgħu ftit ta 'żmien jitkellem dwar din il-ġimgħa li għaddiet, dik ta 'siġar, siġar binarji speċifikament - tifsira siġra binarju li m'għandhiex aktar minn 2 tfal. Hija għandha forsi tifel xellug, forsi tifel dritt, u din hija. Allura jissoponi biss għall-fini ta 'diskussjoni li xi ħadd irid jibgħat messaġġ li tidher bħal dan. Huwa nonsense sħiħ iżda huwa kompost minn As, Bs, Cs, Ds, u Es. U jekk inti fil-fatt għadd up kollha tal-Kif, Bs, Cs, DS, u Es u mbagħad iddividi l-għadd totali ta 'ittri, din it-tabella ftit hawn jgħid li 45% tal-ittri huma Es, 20% huma As, 10% Bs, u oħrajn. Allura fi kliem ieħor, wieħed jassumi li l-sekwenza kkwotati hemmhekk huwa biss xi messaġġ li inti tixtieq li tibgħat. Dan jiġri li jkun nonsense biss hekk nistgħu nużaw bħala ittri ftit kemm jista 'jkun, imma hija tabilħaqq il-każ li jibqa 'lE-aktar popolari, u B u C huma l-inqas popolari, mill-inqas ta 'dawn l-ittri 5 tat-alfabett. Allura kif nistgħu tmur dwar ġejjin bi kodifikazzjoni, a kodifikazzjoni binarju, mudell ta '0s u 1s għal kull wieħed minn dawn l-ittri b'tali mod li E huwa mudell qasir u forsi B u Ċ huma mudelli ftit itwal, għal darb'oħra, l-idea hija li aħna rridu li jużaw bits inqas maġġoranza tal-ħin u l-bits aktar biss darba fil-waqt. Skond Huffman kodifikazzjoni, inti tista 'toħloq foresti ta' siġar. Hemm tip ta 'linja storja hawn li jinvolvi siġar u wkoll il-proċess ta' bini iwettquhom. Ejja tibda. Nipproponi li tibda ma 'dan tal-foresti, biex ngħidu hekk, ta' 5 siġar, kull wieħed minnhom hija siġra pretty stupid. Is-siġra hija komposta minn sempliċiment node wieħed, kif irrappreżentat hawn minn ċirku. Allura kull wieħed minn dawn l-affarijiet jista 'jkun Struct C u ġewwa ta 'l-Struct C tista' tkun float li jirrappreżenta l-għadd tal-frekwenza u mbagħad forsi char li jirrappreżenta l-ittra. Allura taħseb dawn in-nodi bħala biss xi Struct C antiki iżda, għal issa, livell ogħla. Din hija foresti ta 'siġar 5, b'kull wieħed minn li jkollhom biss node wieħed. X'inhu Huffman propost huwa li nibdew biex jgħaqqdu dawk is-siġar li jkollhom l-għadd ta 'frekwenzi iżgħar fis-siġar kemmxejn akbar billi jorbothom ma 'node għerq ġdid. Allura fost l-ittri hawn, avviż li għall-konvenjenza stajt magħżula minnhom mix-xellug għal-lemin, għalkemm dan mhux strettament neċessarju, u l-avviż li n-nodi iżgħar Bħalissa 10% u 10%. Allura Huffman propost li aħna jingħaqdu ta'dawk il-lymph 2 iżgħar ġo siġra ġdida bl-introduzzjoni ta node ġenitur ġdid u mbagħad tagħti dak il-ġenitur tifel xellug u wild dritt fejn B hija arbitrarju fuq ix-xellug u C hija arbitrarjament il-lemin. U mbagħad Huffman propost ukoll li ejja issa just think tal-wild xellug f'waħda minn dawn is-siġar dejjem bħala li qiegħed ikun rappreżentat minn 0 u l-wild dritt dejjem bħala rappreżentata mill-numru 1. Ma jimpurtax jekk inti flip lilhom sakemm int konsistenti. Allura issa għandna erba 'siġar fil-foresti dan. U jien ngħid 4 minħabba li issa l-siġra fuq ix-xellug - u mhuwiex daqstant siġra fis-sens li tikber b'dan il-mod, huwa aktar simili siġra tal-familja fejn issa l-0.2 huwa tip tal-ġenitur tat-tfal 2 - tinnota li f'dak il-ġenitur konna mfassla 0.2. Imxejna miżjud l-għadd ta 'frekwenzi tat-żewġt itfal u minħabba l-node ġdid is-somma totali. Allura issa aħna biss irrepeti dan il-proċess. Sib il-lymph 2 iżgħar u mbagħad għaqqadhom ġo siġra ġdida u mbagħad irrepeti l-proċess ulterjuri. Dritt issa għandna kandidati ftit, 20%, 15%, u ieħor ta '20%. F'dan il-każ, għandna biex jiksru r-rabta. Nistgħu nagħmlu dan b'mod arbitrarju. Għandna biss tagħmel dan b'mod konsistenti. F'dan il-każ, jien ser arbitrarju jmorru mal-wieħed fuq ix-xellug, u jien issa jingħaqdu l-20% u l-15% li tagħti me ġenitur ġdid imsejjaħ 35%, li xellug tifel huwa 0, li d-dritt tat-tfal hija l-1, u issa għandna biss tliet siġar fil-foresti. Tista 'forsi tara fejn dan ikun għaddej. Jekk aħna irrepeti dan darbiet koppja aktar, aħna qed tmur biex ikollhom wieħed biss siġra akbar, kollha ta 'truf tagħhom ikunu tikkettjati bl 0s u 1s. Ejja nagħmlu dan mill-ġdid. 35% huwa għerq li siġra tal-. 20% u 45%, hekk aħna qed tmur biex jingħaqdu l-35% u 20%. Issa għandna din is-siġra hawn. Aħna żid flimkien, għandna 55%. Issa hemm biss żewġ siġar fil-foresti. Aħna nagħmlu dan darba finali, u nisperaw matematikament il-frekwenzi kollha jammontaw għaliex huma għandhom peress li aħna ikkalkulat mis-nikseb-go li jammontaw għal 100%. U issa aħna għandna waħda siġra. Allura dan huwa siġra kodifikazzjoni Huffman. Huwa tip ta 'ħadet filwaqt li naslu s'hemm bil-fomm, iżda r-realtà hija bil għar loop jew ma 'funzjoni jirrikorri, inti tista' tibni dan ħaġa up pretty fast. Allura issa aħna għandna waħda node ġdid, u kollha ta 'dawn in-nodi ta' ġewwa malloc'd, preżumibbilment, tul it-triq. Allura issa fil-quċċata ta 'din is-siġra għandna 100%, iżda issa avviż għandna triq minn dan il-ġdid kbira-kbira-kbira-nanniet kollha ta 'l-kbir' great-kbira-neputijiet it-triq kollha fil-qiegħ, għall kollha tal-weraq. Dak li aħna qed tmur biex tagħmel issa huwa jipproponi li sabiex jirrappreżentaw l-ittra E, aħna se sempliċement jużaw in-numru 1. Għaliex? Għaliex jekk aħna travers din is-siġra mill-għeruq finali l isfel għall-werqa magħrufa bħala E, aħna isegwu waħda biss tarf, ix-xifer dritt, u li l-ittikjati tal-kors fl-1 kantuniera. Allura l-implikazzjoni hawn għall Huffman kienet li kodifikazzjoni E fl binarju għandu jkun biss 1. U li pretty kkritikat effiċjenti. Ma jistgħux verament jiksbu kwalunkwe iżgħar minn dak. B'kuntrast, A se tkun rappreżentata, jekk inti ssegwi l-loġika, minn dak li mudell ta 'bits minflok? 01. Allura biex jiksbu A, nibdew l-għerq u immorru xellug u mbagħad immorru dritt, li jfisser li aħna segwew 0 u mbagħad 1. Allura aħna għandha tirrappreżenta l-ittra A il-mudell 0 u 1. U issa avviż li diġà għandna proprjetà ta 'decodability immedjat li aħna ma kellhiex fil-kodiċi Morse. Anke jekk dawn iż-żewġ mudelli huma pjuttost qasir - E huwa 1 bit, A huwa ta '2 bits - avviż li ma jistgħux jiġu konfużi waħda jew l-oħra, għaliex jekk inti tara 1 huwa ltqajna biex tkun E, jekk tara 0 imbagħad 1 huwa ovvjament ltqajna biex tkun A. Bl-istess mod, x'hemm D? 001. X'inhu C? 0001. U dak li huwa B? 0000. U għal darb'oħra, minħabba kollha ta 'l-ittri we care about huma fil-weraq u ħadd minnhom huma tip ta 'intermedjarji fil-passaġġ mill-għeruq għall-weraq, hemm l-ebda riskju ta 'conflating encodings differenti 2 ittri " minħabba kollha ta 'dawn it-tendenzi bit huma deterministic. 0000 dejjem se jkun B. M'hemm l-ebda node x'imkien bejniethom li inti tista 'jikkonfondi ittra waħda għall-oħra. Allura x'inhu l-implikazzjoni hawnhekk? L-ittra l-aktar popolari - f'dan il-każ E - gotten l-kodifikazzjoni iqsar, A gotten l-kodifikazzjoni li jmiss iqsar, u B u C, li aħna diġà jafu mill-tip get-go kienu ta 'l-inqas popolari fi frekwenza ta '10% kull wieħed, huma gotten-kodifikazzjoni itwal. U għalhekk dak li dan ifisser issa huwa li jekk inti tixtieq li jibgħat messaġġ li l-kompressata fuq l-Internet jew email jew simili, milli jużaw ASCII standard, tista 'tibgħat messaġġ Huffman kodifikata fejn jekk inti tixtieq li tibgħat l-ittra E, inti tibgħat biss daqsxejn waħda. Jekk inti tixtieq li tibgħat A, inti tibgħat 2 bits, 01, minflok jibgħat 8 bits segwit minn ieħor bits 8 segwit minn ieħor bits 8 u ibqa 'sejjer hekk. Iżda hemm gotcha hawn. Huwa mhux biżżejjed li sempliċiment jinbena din is-siġra u mbagħad tibda tibgħat mill Alice sa Bob il-mudell bit iqsar, spag minn ASCII, minħabba Alice għandu wkoll jinforma lill Bob ta 'dak li jekk Bob huwa se jkun kapaċi li jaqra messaġġ kompressata tagħha? [Inaudible student rispons] >> X'hemm li? [Inaudible student rispons] >> Tal dak l-siġra. Jew saħansitra aktar speċifiku, liema huma dawk encodings huma, speċjalment peress matul din l-istorja għamilna sejħa sentenza fuq punt wieħed. Ftakar li kellna pick arbitrarjament bejn il-2 lymph differenti 20%? Allura huwa mhux il-każ li Bob, ir-riċevitur, tista 'sempliċement tibni mill-ġdid is-siġra fuq tiegħu stess għaliex forsi hu se toħloq l-siġra dejjem hekk ftit differenti mill Alice. Barra minn hekk, Bob lanqas taf x'inhi l-messaġġ oriġinali huwa minħabba li l-unika ħaġa Alice hija li jibgħat lilu, naturalment, huwa l-messaġġ kompressata. Allura l-qabda bil-kompressjoni bħal dan huwa li, iva, Alice tista 'tiffranka ħafna kollu ta' bits billi jibgħat 1 għall E u 01 għal A u oħrajn, iżda hi wkoll trid tinforma Bob dak l-immappjar huwa bejn l-ittri u l-bits minħabba li ma jistgħux b'mod ċar tistrieħ biss fuq ASCII aktar jekk aħna ma tkunx qed tużah ASCII. Hekk hi tista 'jew tibgħatlu-siġra b'xi - iktibha, jaħżnu bħala data binarja jew xi ħaġa bħal dik - jew biss tibgħatlu folja iqarrqu ftit, fajl Excel, li juri l-mappings. Allura l-effettività ta 'kompressjoni verament tassumi li l-messaġġi li int tibgħat huma pjuttost kbar, għall-inqas ta 'daqs medju, għaliex jekk int tibgħat messaġġ qasir super, jekk inti biss trid tibgħat il-messaġġ BAD, li jiġri li jkun kelma nistgħu jespliċitaw hawn, B-A-D, int probabilment ser tuża bits inqas, iżda l-qabda hija jekk inti jkollok ukoll biex tinforma Bob dak l-siġra jew x'inhuma dawn encodings huma, int ser probabbilment jissuperaw kollha ta 'l-iffrankar ta 'wara l-affarijiet kompressata li tibda bil. Allura jkun jista 'effettivament ikun il-każ li jekk inti tipprova kompressjoni anke ma 'xi ħaġa simili formati zip file jew inti jista' jkun familjari ma '- fajls pretty żgħar, fajls anki vojta - kultant dawn il-fajls jistgħu jiksbu akbar u mhux iżgħar. Iżda realistikament, li jiġri biss għal daqsijiet tal-fajl żgħar, għalhekk mhuwiex ser jagħmel fajl gigabyte jkun 2 gigabytes; aħna qed verament jitkellem bytes jew biss kilobytes ftit. Xi programmi bħal zip huma intelliġenti biżżejjed biex tirrealizza li, "Inti se jqattgħu bits aktar kompressjoni dan." "Let me ma jolqot kompressjoni dan għalik fil-livelli kollha." Allura dan huwa biss mod wieħed imbagħad ta 'kompressjoni format ta' test. Aħna jista 'jimplimenta xi ħaġa bħal din fl C. Per eżempju, hawnhekk hija kif nistgħu jirrappreżentaw node f'dan siġra fejn għandna char għall-simbolu, valur f'wiċċ l-ilma għall-frekwenza, u kif aħna stajt tidher ma 'strutturi oħra ta' data tagħna, 2 pointers, 1 għall-wild xellug, 1 lejn il-lemin, jew li jistgħu jkunu NULL, imma jekk le, din tirreferi għal tifel xellug u tifel dritt. Allura dan allura huwa Huffman kodifikazzjoni, u huwa mod wieħed li inti tista 'tmur dwar kompressjoni informazzjoni, u huwa ċertament wieħed mill-aktar faċli biex jiġi implimentat fil-kuntest ta ', ngħidu aħna, l-istrutturi tad-data fil-ġimgħa li għaddiet, għalkemm anki algoritmi aktar sofistikati jeżistu li tista 'tagħmel mutazzjonijiet aktar sofistikati ta' data tiegħek. Kwalunkwe mistoqsijiet imbagħad fuq siġar, siġar binarju, jew kompressjoni ta 'test? [Student] Hemm xi ambigwità, bħal jekk split [inaudible] in 01, allura 011 tkun ambigwa, id-dritt? [Inaudible] >> mistoqsija Tajba. Ambigwità. Let me tqassar billi jirreferu għall din l-istampa hawn. Minħabba li l-karattri inti kompressjoni, il-rappreżentazzjonijiet tal- b'definizzjoni ta 'din algoritmu dejjem jibqgħu l-weraq, int qatt ser aċċidentalment jużaw l-istess mudell ta 'bits għall-prefiss ta' ittri multipli. Allura fi kliem ieħor, int imħasseb dwar, li ħsejjes simili, ta 'ambigwità li tirriżulta fejn 001 jista 'jkun il-bidu ta' B jew il-bidu ta 'C jew xi ħaġa bħal dik. Iżda dan ma jistax ikun il-każ minħabba li l-avviż li kollha tal-ittri tal-alfabett aħna qed kodifikazzjoni huma fil-weraq. Il-ambigwità jista 'jqum biss, bħal fil-każ tal-kodiċi Morse, jekk, per eżempju, C kien x'imkien tul il-passaġġ mill-għeruq għal B. [Student] Dritt. Allura f'dak il-każ, jiġifieri A għandu 2 weraq. >> Say A għandu - Jgħidu li mill-ġdid. [Student] Say A għandu 2 weraq, F u G, u mbagħad G - >> Okay. Iżda ma jistax. A innifsu ma jistax ikollha l-weraq F u G għaliex dawk l-ittri F u G huma stess ikunu tħalli x'imkien lejn ix-xellug ta 'B jew id-dritt ta' E. Allura skond id-definizzjoni, dawn għandhom ikunu weraq. Inkella, int eżattament id-dritt, konna mhux solvuta l-problema li Morse code tiffaċċja. Good kwistjoni. Mistoqsijiet oħra? Kull dritt. Dan il-kunċett ta 'bits, jirriżulta aħna kellna qawwa kollha flimkien li aħna stajt ma attwalment użati meta wasal għall-manipulazzjoni dawn 0s u 1s. Aħna mistoqsi dwar dan fuq waħda mis-settijiet problema kmieni: jiġifieri, kif taħseb li tmur dwar jikkonvertu uppercase zghar li jew vice versa? Jew, b'mod aktar konkret, wieħed minn dawk psets 1 staqsa kemm bits do inti attwalment ikollhom flip sabiex ibiddel A sa zghar viċi versa a jew? Hawn tfakkira malajr ta 'dak 65 u 97 look like fil-binarju. U anki jekk din il-kwistjoni it-tip ta faded fil-memorja tiegħek, tista 'tara mill-ġdid hawnhekk li kemm bits jeħtieġ li jiġu flipped għall-bidla kapital A għal zghar a? Just wieħed. Huma biss differenti f'post wieħed, il-bit tielet mix-xellug. Billi A għandha 010, ftit li għandha 011. Allura b'xi, għandna bżonn biss tkun tista 'flip li ftit, u nistgħu mbagħad kapitalizzazzjoni jew zghar ittri. Aħna ghamilt dan fil-passat mill-fatt tuża jekk il-kondizzjonijiet u l-verifika jekk l-ittra huwa bejn il-kapital A u l-kapital Z, imbagħad outputs bħal A - a + 26 jew xi ħaġa bħal dik. You probabbilment ma bidla aritmetika għall-ittri tal-alfabett. Imma x'jiġri jekk nistgħu biss flip li ftit wieħed? Kif tista 'inti tmur dwar teħid jiswew 1 byte ta' bits, bits hekk 8 simili 01000001 u 01100001? Jekk kellek dawk il-mudelli ta 'bits, kif nistgħu tmur dwar tibdil biss waħda minnhom? X'jiġri jekk aħna jintroduċu bl-isfar hawn dan il-mudell ieħor ta 'bits? Jekk I jagħmlu l-0s kollha string isfar ħlief għall-ftit wieħed li nixtieq għall-bidla u mbagħad I jintroduċu operatur ġdid magħruf bħala operatur bitwise - bitwise fis-sens li jopera fuq bits individwali, mhux fuq byte kollu jew 4 bytes kollha f'daqqa. Dan bar vertikali hemm fl-isfar jissuġġerixxi li dak li jekk nieħdu r-rappreżentazzjoni tal-kapital A u bitwise JEW bl-sekwenza ta 'bits isfar? Fi kliem ieħor, think lura għad-diskussjoni tagħna ta 'espressjonijiet Boolean fil Scratch u mbagħad C. Jsir Boolean jew ifisser li biex ikunu vera, jew l-ewwel ħaġa trid tkun veru jew it-tieni ħaġa trid tkun vera jew tnejn li huma għandhom biex ikunu vera, u allura l-output li tirriżulta hija nnifisha veru. F'dan il-każ hawnhekk, dak li nagħmlu jekk nieħdu 0 "jew" ed bil 0? Falza jew falza? Huwa għadu falza, sabiex l-zghar a tibqa kif mistenni. X'jiġri jekk minflok nagħmlu 1 jew 0? Dan issa jibqa 1, imma avviż x'hemm sejjer iseħħ hawn. Jekk nibdew bil-kapital A u aħna tkompli "jew" bits individwali tiegħu kif aħna qed tagħmel hawn, 0 jew l-waħda safra tagħtina dak stabbiliti hawn? Din tagħtina 1. Fil-fatt, ejja ngħidu aħna ma kinitx taf liema l-verżjoni uppercase ta 'ftit minn fatt kien. Ejja jmorru jagħmlu dan. Let me jimxu dan back hawn fuq. Ejja nagħmlu dan mill-ġdid. 0 jew 0 me tagħti 0. 1 jew 0 me tagħti 1. 0 jew 1 jagħti me 1. 0 jew 0 me tagħti 0. Il-wieħed li jmiss huwa 0, dak li jmiss huwa 0, l-waħda li jmiss hija 0. 1 jew 0 me tagħti 1. U hekk anke jekk aħna ma kinitx taf minn qabel liema zghar li kien, sempliċiment billi "jew" Ing A ma 'dan il-mudell ta' bits li aħna ve ppreżentati hawn fil isfar, inti tista zghar 'kapital A mill flipping li ftit. Aħna użati dan ġimgħat ilu espressjoni: flipping daqsxejn. Kif inti fil-fatt jagħmlu dan programmatically? Tuża dak li ġeneralment jissejjaħ 'maskra, sekwenza ta' bits, li f'dan il-każ biss hekk jiġri li look like dan in-numru hawn, u allura inti "jew" li flimkien jużaw dan l-operatur C ġdida, mhux | |, tuża waħda | u inti fil-fatt tikseb din it-tweġiba hawnhekk għaliex għaliex? Dan huwa l-post 1s, 2s post, 16s 4s, 8S,, 32S. Għalhekk jirriżulta li jekk inti tieħu ittra kapitali A u bitwise JEW ma 'l-32 numru sħiħ, minħabba li l-32 numru sħiħ, meta inti tħares lejn din bħala bits, qisu dan, dan ifisser li inti tista 'flip-ftit li inti fil-fatt tixtieq. U bl-istess mod - u aħna ser tħares lejn il-kodiċi fil-ftit mument - jissoponi irridu imorru l-direzzjoni oħra. Kif inti tmur minn zghar kapital lil A? Li ftit jeħtieġ li jinbidel? Hu l-istess waħda. Aħna tixtieq li bidla li ftit 3 minn 1 għal 0. U kif tista we go dwar kif isir dan? Kif nistgħu itfi daqsxejn? Bil liema mudell ta 'bits nistgħu itfi daqsxejn? X'jiġri jekk aħna sort tal invertit-maskra? Billi qabel, għamilna l-0s kollu maskra isfar ħlief għall-ftit 1 ridna li jduru fuq, dak jekk dan iż-żmien, nagħmlu l-1s maskra kollu ħlief għall-ftit li aħna rridu li itfi u mbagħad jużaw dak l-operatur? X'jiġri jekk aħna "u" affarijiet? Ejja tagħti ħarsa. Jekk aħna issa flip għal dan, jissoponi li għal darb'oħra I joħolqu maskra li kollox 1s ħlief għall-ftit wieħed li nixtieq li itfi u mbagħad minflok "jew" in-numri bojod up top bin-numri isfar isfel hawn, jekk dak I minflok "u" flimkien? Huwa sejjaħ għal bitwise u. Loġikament, huwa l-istess ħaġa bħala Boolean u. Dan jagħti me 0 & 1 hija 0. Allura falza u vera hija falza. True u vera huwa veru. U hawn huwa l-maġija: True u falza issa huwa falz, hekk aħna ve mitfija li ftit. U issa l-bqija ta 'l-istorja hija kemmxejn sempliċi. Minħabba li l-bqija tal-maskra hija 1s, ma jimpurtax liema n-numri huma fl-abjad. Meta inti "u" xi ħaġa ma 'veru, int mhux se jibdlu l-valur tagħha. Jekk huwa veru, se tibqa 'fidila. Jekk kien falz, se jibqa falza. Iżda l-magic jiġri meta inti tieħu xi ħaġa li kienet veru u int imbagħad "u" ma falza. Dan għandu l-effett ta 'tidwir off li ftit. Allura cryptic ftit hemmhekk. Ejja fil-fatt nħarsu lejn uħud kodiċi, li jista 'attwalment ħarsa aktar cryptic, imma ejja tagħti ħarsa hawn fuq tolower. Jekk I ħarsa lejn tolower, li jmorru mill-kapital A għal zghar a, ejja ara kif nistgħu timplimenta dan il-programm. Hawn prinċipali, u huwa mhux qed tieħu ebda argument kmand tal-linja. Jien tiddikkjara ċ karattru għall-ittra li l-utent se tip pulzieri I mbagħad jużaw do familjari filwaqt loop sabiex tagħmel ċert li l-utent definittivament tagħti me a kapitali A jew B jew Ċ .. Z, sabiex dawn jagħtu me xi ħaġa bejn A u Z. U issa dak li jien tagħmel hawn? Jien "jew" Ing dan ma 0x20, iżda li fil-fatt l-istess bħal - u aħna ser terga 'lura għal dan fil-mument - 32. Għalhekk għal darb'oħra, 32 huwa dan il-mudell ta 'bits hawn. Għaliex nafu dan? Aħsbu ftit lura għal ġimgħa 0. Dan huwa l-post 1s, 2s post, 4s, 8S, 16s, post 32S. Allura dan in-numru isfar jiġri li jkun 32. I jistgħu imbagħad jieħdu ittra bħall-char hawn, bitwise "jew" ma litteralment-numru 32, u dak nista 'nikseb lura? Il-verżjoni zghar ta 'dak char. A mument ilu, għalkemm, jiena espress dan fi notazzjoni bażi differenti. What did dan jirrappreżenta? >> [Student]. Hexadeċimali [Malan] Dan jiġri li jirrappreżenta hexadeċimali. Aħna ma tkellem dwar hexadecimal kollha li ħafna, iżda huwa attwalment konvenjenti fil-każijiet bħal dan. Anki jekk jidher aktar kumpless u anki jekk jidher qisu 20 u mhux 32, jirriżulta li hexadeċimali huwa attwalment notazzjoni konvenjenti super għaliex f'hexadecimal f'kull ċifri wara l-0x - u dan ifisser xejn; dan huwa biss il-konvenzjoni tal-bniedem li tgħid hawnhekk jidħol numru hexadeċimali - kull wieħed minn dawn numri, il-2 u allura l-0, nfushom jistgħu jkunu rappreżentati b'eżattament 4 bits. Mela jekk nagħmlu dan, let me tiftaħ editur test hawn - stramb AutoComplete - jekk nagħmlu editur test ftit hawn, il 0x20 numru ifisser hawnhekk huwa 4 bits, hawnhekk ieħor bits 4. Ejja nagħmlu l-lemini 4 bits ewwel. 0 meta rappreżentati mal 4 bits huwa dak? Super faċli. Just kollha 0s. Allura 4 bits bħala 0s. Kif inti tirrappreżenta 2? Huwa kien filwaqt li peress li aħna ma dan, iżda huwa 0100. Allura dan huwa l-post 1s, dan huwa l-post 2s, u mbagħad ma jimpurtax dak li l-postijiet l-oħra huma. Fi kliem ieħor, f'hexadecimal inti jista 'jgħid 0x20, imma jekk inti mbagħad jaħsbu dwar dak huwa l-2 u kif huwa rappreżentat fil-binarju, dak li huwa l-0 u kif huwa rappreżentat fil-binarju, it-tweġibiet għal dawn id-domandi huma dan u dan rispettivament. Allura 0x20 jiġri li jirrappreżentaw dan il-mudell ta '8 bits, li huwa preċiżament il-maskra li ridna. Allura dan huwa l-mument eżatt eżerċizzju intellettwali, iżda r-realtà hija fil-kodiċi huwa tipikament aktar komuni li tikteb kostanti bħal dan f'hexadecimal għaliex imbagħad il-programmer tista relattivament faċilment, anki jekk jeħtieġ xi karta u lapes, ċifra barra dak li mudell ta 'bits hija għaliex inti tista 'mhux biss jesprimu 0s u 1s tipikament fil-kodiċi. Inti ma tistax tmur 00010 u oħrajn. Int għandek pick notazzjonijiet deċimali jew hexadeċimali jew octal jew oħra. Ħafna nies għandhom tendenza li jtellgħu hexadeċimali sempliċement sabiex kull ċifra tirrappreżenta 4 bits u inti tista 'tagħmel dan matematika malajr. U jien ser mewġa naħa tiegħi fil toupper, li huwa kważi l-istess; jidher kważi identiċi. Toupper jiġri li tuża mhux l-operatur jew iżda dan Guy u df. X'jagħmel df jirrappreżenta? df? Kulħadd? >> [Student] 255. 255? Mhux 255. Dan ikun ff. Aħna ser tħalli dan wieħed bħala eżerċizzju ftit. Imma jekk inti tmur minn 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 u mbagħad dak li jiġi wara 9? Aħna tip ta 'barra ta' numri deċimali, imma f'hexadecimal dak li jiġi wara 9? [Student] a. >> Allura a, b, c, d. Tista 'ċifra barra minn hemm dak mudell ta' bits d attwalment jirrappreżenta. U jekk nagħmlu l-matematika, aħna ser tara li l-maskra inti tispiċċa jkollna lura huwa identiku għal dan. Dan huwa f, kollha 1s, u dan huwa d. Allura df jirrappreżenta dak maskra. Kull dritt. U fl-aħħarnett, biex ma tagħmel l-affarijiet ħoss super, super teknika, iżda jissoponi ridna li jiktbu program li ma dan. Let me imorru quddiem u jagħmlu binarju, li huwa programm fil-fajl imsejjaħ binary.c. U issa let me run binarja u jagħtu me numru sħiħ mhux negattiva. Nibdew faċli u t-tip fil-0. Dan issa huwa programm li tistampa integer fir-rappreżentazzjoni binarja tagħha. Mela jekk jien jilagħbu din il-logħba mill-ġdid u t-tip biss fl-1, I, għandhom jingħataw rappreżentazzjoni 32-daqsxejn ta '1. Jekk nagħmel dan mill-ġdid ma 2, I għandu tikseb dan. Jekk I do 7, I għandhom jiksbu 1s ftit fl-aħħar u oħrajn. Jirriżulta nsemmi dan għaliex ma 'operazzjonijiet bitwise inti tista 'attwalment tagħmel ħaġa waħda oħra kif ukoll. Tista 'toħloq dawn il-maskri dinamiku. Agħti ħarsa lejn dan l-eżempju waħda finali li jinvolvu operazzjonijiet bitwise. Hawn hu l-ewwel parti tal-kodiċi, fil-pront lill-utent għal numru, u jinsisti li inti tagħti me numru sħiħ mhux negattiva. Allura dak it-tip ta 'għalf iskola antika. Iżda hawnhekk hija xi ħaġa li l-tip ta 'interessanti. Kif nista tmur dwar l-istampar ta 'numru fil-binarju? I l-ewwel jtenni minn dak li xiex? X'hemm-daqs ta 'int tipikament, għall-inqas fil-appliance? >> [Student] 4. Huwa 4. Allura 4 * 8 huwa 32 - 1 huwa 31. Mela jekk jien jibdew jgħoddu minn 31, li tirrappreżenta, jirriżulta, biss kunċettwali, il-bit 31 jew il-bit ordni ogħla, li huwa dan Guy hawn fuq, billi dan se jkun ta '0 bit. Allura dan huwa daqsxejn 01 ... bit 31. Allura dak li huwa dan il-kodiċi tagħmel? Avviż dan għal loop, anki jekk jidher cryptic, huwa biss iterazzjoni minn 31 sa 0. Li minnu. Allura l-parti interessanti issa jridu jkunu f'dawn il-linji 5 hawn. Avviż li f'dan il-linja jien tiddikjara maskra varjabbli imsejjaħ tkun konsistenti ma 'l-istorja tagħna ta' dawn in-numri isfar. U allura dak li huwa dan isir? Dan huwa pass ieħor 'operatur bitwise aħna stajt ma rajna qabel, l-aktar probabbli. Hu l-operatur bidla xellug. Dan operatur ma dan. Hawnhekk huwa n-numru 1, u jekk inti do i xellug shift, shift xellug, x'taħseb li għandu l-effett li jagħmlu dak 1 individwali? Litteralment ċaqliq li fuq. Allura jekk in-numru 1 huwa dak li għandek fuq ix-xellug u tibda bl initializing i sa 31, dak li huwa li se jagħmlu? Huwa ser jieħu dan in-numru 1 u neqilbu dan 31 postijiet hawn fuq. U għaliex hemm ovvjament ebda ċifri ieħor warajh, dawn se awtomatikament jiġu sostitwiti 0s. Allura inti ser tibda bin-numru 1, li naturalment tidher bħal dan - u let me tiġbed hawn fuq fiċ-ċentru. U allura kif inti bidla affarijiet fuq ix-xellug, Guy dan essenzjalment tmur b'dan il-mod. Iżda hekk kif inti tagħmel dan, ta '0 gets mimlija pulzieri Jekk inti shift hija t-tieni darba, din tmur b'dan il-mod u ieħor 0 gets mimlija pulzieri You shift mill-ġdid u mbagħad ieħor 0 gets mimlija pulzieri Mela jekk inti tagħmel dan ħaġa ta '1 << i 31 postijiet, inti tispiċċa jkollna maskra li huwa 32 karattri fit-tul, il-wieħed leftmost tagħhom huwa ta '1, kollha tal-bqija ta 'li huma ta' 0. U jirriżulta, bħala twarrib, ċaqliq numru lejn ix-xellug bħal dan wkoll inzerta, u xi kultant konvenjenti, għandha l-effett li jagħmlu dak li dak in-numru? >> [Student] irduppjar dan. Irduppjar għaliex kull wieħed mill-kolonni - il-post 1s, 2s post, post 4s, Post 8S, 16s post - they're kollha irduppjar kif tmur lejn ix-xellug. Jew pjuttost, meta inti ċċaqlaq il-1s int ser jispiċċaw irduppjar tal-valur tan-numru. Tista jispiċċaw jagħmlu trasformazzjonijiet interessanti ta 'numri billi ċċaqlaq kollox fuq b'dan il-mod mill-poteri ta '2. Allura kif taħdem din? Dan imbagħad tagħti me maskra li kollox 0s ħlief għal 1 fil preċiżament il-post I jriduhom, u mbagħad din l-espressjoni, li hija misruqa mill toupper.c, hija sempliċement tgħid tieħu n-numru n li l-utent ittajpjat fil, "U" ma 'dik maskra, u liema huma inti se tikseb? Int ser tikseb 1 jekk hemm 1 fil-lok masked, jew int ser tikseb 0 jekk ma jkunx hemm. U hekk dan kollu programm ma effettivament hija għandha loop, u din toħloq maskra ma '1 hawn fuq, imbagħad ta' 1 hawn fuq, imbagħad ta '1 hawn fuq, u hija tuża dan bitwise U trick li jgħidu hemm daqsxejn 1 fil-kontribut tal-utent hawn? Hemm ftit 1 fil-kontribut tal-utent hawn? U jekk iva, litteralment print 1, inkella print 0. Aħna qed tagħmel dan ma 'ints biss minħabba li huwa għalhekk li għandna qed tagħmel 32 bits minflok 8, imma dak li konna introdotti allura huwa dan bitwise U, dan bitwise JEW, u dan l-operatur bidla xellug, li mhumiex ta 'spiss terriblement utli, iżda jirriżulta li jista 'jkun. Fil-fatt, jekk ġejt biex jirrappreżentaw xi ħaġa simili ta 'firxa ta' Booleans biss biex jirrappreżentaw vera jew falza, ejja ngħidu li inti ridt li jżommu rekord ta 'jekk jew le kamra sħiħa ta '300 student huwa preżenti, inti tista 'tiddikjara firxa ta' daqs 300 tar tip bool sabiex ikollok 300 bools, u inti tista 'tistabbilixxi kull wieħed veru jekk xi ħadd huwa hawnhekk u falza mod ieħor. Għaliex huwa li rappreżentazzjoni f'dak istruttura tad-data ineffiċjenti? X'hemm ħażin dwar id-disinn ta 'dak istruttura tad-data, firxa ta' 300 bools? X'inhu bool, fil-fatt, minn taħt il-barnuża? Dan, ukoll, hija xi ħaġa li jistgħu ma jkunux familjari. Jirriżulta m'hemm l-ebda bool. Ftakar aħna tip ta 'ħoloq li bil-fajl cs50.h, li fih innifsu jinkludi bool standard. C huwa tip ta 'mutu, għalkemm, meta niġu għall-bool. Hija tuża 8 bits biex jirrappreżentaw kull bool, li hija kompletament ħela għaliex ovvjament, kemm bits ma għandek bżonn biex jirrappreżentaw bool? Just 1. Għalhekk jirriżulta li jekk inti issa għandhom il-ħila mal-operaturi bitwise li jimmanipulaw bits individwali anke fil-char, anki fi byte wieħed, jirriżulta li inti tista 'tnaqqas l-memorja meħtieġ li jirrappreżenta xi ħaġa stupid bħal dik attendenza istruttura tad-data styled b'fattur ta '8. Minflok tuża tmien bits biex jirrappreżentaw vera jew falza, inti tista litteralment tuża waħda bl-użu ta byte wieħed għal kull istudenti 8 fil-klassi u toggling 0-1 bits individwali billi jużaw dawn it-tipi ta 'livell baxx tricks. Li verament itemmu l-enerġija. Hemm xi mistoqsijiet dwar l-operazzjonijiet bitwise? Yeah. >> [Student] Hemm operatur esklussiva jew? Iva. Hemm operatur esklussiva jew li tidher bħal dan, ^, is-simbolu zunnarija, li tfisser biss il-ħaġa ewwel jew it-tieni ħaġa tista 'tkun 1 għall-produzzjoni li tkun 1. Hemm ukoll le, ~, li se jippermetti li inti invertit ta '0 lil versa 1 jew viċi ukoll. U hemm ukoll operatur bidla dritt, >>, li huwa l-oppost ta 'dak rajna. Kull dritt. Ejja jieħdu l-affarijiet issa għal livell ogħla. Bdejna billi titkellem dwar it-test u mbagħad kompressjoni li u li jirrappreżentaw it-test bin-numri inqas ta 'bits; tkellimna ftit dwar kif aħna issa tista 'tibda titħaddem affarijiet fuq livell bitwise. Ejja issa zoom back up 10,000 pied għal rappreżentanza ta 'l-affarijiet aktar kumplessi bħall-grafika. Hawnhekk għandna bandiera tal-Ġermanja, hawnhekk aħna għandna waħda ta 'Franza. Dawn jistgħu jkunu rappreżentati fil-formati tal-fajl inti tista 'taf - gifs, per eżempju. Jekk inti stajt qatt dehru immaġni fuq il-Web li jispiċċa fl. Gif, dan huwa format ta 'skambju grafika. Dawn bnadar 2 hawn tip ta jisilfu lilhom infushom għall-kompressjoni għal dak li forsi ovvju raġuni? >> [Rispons istudent inaudible] Hemm ħafna ta 'ripetizzjoni, id-dritt? Sabiex tibgħat bandiera tal-Ġermanja, think ta 'dan bħala immaġini fuq l-iskrin lura fil-jiem Scratch tiegħek. Inti tista 'tfakkar li hemm pixels individwali jew tikek li jikkomponu l-immaġini. Hemm ringiela sħiħa ta 'tikek suwed u ieħor ringiela kollha ta' tikek suwed. Hemm mazz ta 'ringieli ta' tikek suwed li nistgħu tara jekk aħna verament żżomjati fi, simili ħafna meta aħna żżomjati fl fuq wiċċ Rob fil Photoshop. Hekk kif aħna ltqajna aktar profonda u aktar profonda u aktar profonda fis-immaġni, bdejt tara l-pixelation, kollha tal-kwadrati li kienu jiffurmaw l-għajnejn tiegħu f'dak il-każ. Jittrattaw Istess hawn. Jekk aħna żżomjati fil pjuttost ftit, inti tara tikek individwali. Ukoll, dan huwa tip ta 'ħela ta' bits. Jekk ċittadin tal-bandiera huwa iswed u terz tal-bandiera huwa isfar u oħrajn, għaliex ma nistgħu b'xi mod kkompressat din il-bandiera? U anki l-bandiera Franċiża jistgħu jiġu kkompressati anki jekk il-mudell huwa xi ftit differenti. Jirriżulta l-format tal-fajl GIF huwa format kompressjoni lossless, li jfisser li inti tista 'tieħu l-immaġni bħall-bandiera Ġermaniża hawn, inti tista tarmi l bogħod ħafna bits tagħha mingħajr ma tiġi sagrifikata kwalità. Dan huwa b'kuntrast għal xi ħaġa bħal JPEGs, magħhom ħafna minna huma probabbilment aktar familjari. Facebook ritratti u Flickr ritratti u simili huma kważi dejjem jiġu ffrankati bħala JPEGs meta jkunu qed tittella, iżda JPEGs huwa lossy - format li bih inti tarmi bits - lossy imma int wkoll armih kwalità. U hekk jekk inti kkompressat ritratti bil Photoshop jew upload biex Facebook jew teħodhom fuq telefon verament crappy, inti taf li l-istampa jibda biex tikseb ħafna splotchy u pixelated, u dan għaliex huwa qed kompressat mill-kompjuter jew telefon billi litteralment jitfa 'informazzjoni bogħod. Iżda GIF hija aqwa minħabba li tista 'tuża bits inqas milli jista' kontumaċja mingħajr ma jitilfu ebda informazzjoni. U essenzjalment tagħmel dan kif ġej. Pjuttost milli taħżen fil-fajl bħal BMP kieku l trippla RGB għall-iswed, iswed, iswed, iswed, iswed, iswed, iswed, iswed, iswed, iswed, iswed, iswed u oħrajn, pjuttost, il-format GIF se ngħid, "Black," u mbagħad, "Irrepeti dan darbiet 100," jew xi ħaġa bħal dik. "Iswed, irrepeti dan darbiet 100, iswed, irrepeti dan darbiet 100 ..." "Yellow, irrepeti dan darbiet 100." U għalhekk jiftakar, essenzjalment, il-pixel leftmost u mbagħad tikkodifika b'xi mod il-kunċett ta 'tirrepeti dak pixel ġdid u għal darb'oħra. Allura GIFs jistgħu mbagħad kkompressat lilhom infushom mingħajr ma jitilfu ebda informazzjoni. Imma jekk inti kellha raden, jekk dan huwa l-algoritmu li gifs użu, liema minn dawn il-bnadar, anki jekk huma jfittxu identiċi fid-daqs, se tkun iżgħar meta ffrankati fuq diska bħala GIF? >> [Student] Il-Ġermanja. Il-Ġermanja se tkun iżgħar? Għaliex? [Student] Għaliex inti jirrepeti dan ħafna, ħafna drabi orizzontalment u allura inti irrepeti ieħor żmien. >> Eżattament. Minħabba li l-persuni li vvinta GIF tat-tip biss b'mod arbitrarju iddeċieda li r-ripetizzjoni se jkunu msaħħa orizzontalment u mhux lateralment. Hemm ripetizzjoni ħafna aktar lateralment hawn fil-bandiera Ġermaniża milli fil-bandiera Franċiża. Allura jekk aħna fil-fatt tiftaħ folder fuq hard drive tiegħi li għandu dawn GIFs, inti tista 'attwalment tara li l-bandiera Ġermaniża hawnhekk huwa 2 kilobytes u l-wieħed Franċiż huwa 4 kilobytes. Dan jiġri li jkun koinċidenza li wieħed huwa darbtejn l-oħra, iżda huwa fil-fatt il-każ li l-bandiera Franċiża huwa ħafna ikbar. Anki jekk aħna qed jitkellem hawn dwar grafika, l-istess ideat tista 'tapplika għal mhux affarijiet simili bnadar iżda stampi li huma ftit aktar kumplessi. Jekk inti tieħu stampa ta 'tuffieħ, żgur hemm ħafna ta' duplikazzjoni hemmhekk, hekk nistgħu b'xi mod niftakru li l-isfond default blu u mhux, kif l-istampa tal-lemin jissuġġerixxi, għandek tiftakar il-kulur ta 'kull pixel wieħed din l-istampa. Allura nistgħu tarmi bits bogħod hemm mingħajr ma jitilfu l-informazzjoni. Il-tuffieħ għadu jistenna biss l-istess. F'dan l-eżempju hawn, inti tista 'tara dak li jiġri fil-film. Dawn jirrappreżentaw qodma l-iskola irkiekel film li permezz tagħha fil-immaġini ta 'fuq hemm għandek sewqan RV passat dar u siġra. U kif dan van drives passat mix-xellug għal-lemin, dak li ovvjament ma jinbidlu? Il-house huwa ma tmur imkien, u l-siġra huwa ma tmur imkien. L-unika ħaġa li l-mixja huwa l-van f'dan il-każ. Allura kif Sfond mhux mibdul jissuġġerixxi, x'tista 'tagħmel fil-films huwa simili biss tarmi l bogħod informazzjoni li ma tinbidilx fl bejn frames. Dan huwa ġeneralment magħruf bħala kompressjoni interframe fejn jekk dan il-qafas jistenna kważi identiku għal dan wieħed, ejja ma jolqot ħażna fuq disk xi informazzjoni identika fuq dawn il-frejms intermedji, ejja biss l-użu frejms ewlenin darba fil-waqt li attwalment jaħżnu l-informazzjoni bla bżonn biss bħala sanità ftit check. B'kuntrast, approċċ ieħor għall-video kompressjoni huwa f'dan l-eżempju 2 u t'isfel hawn, fejn minflok maħżen 30 frejm, għaliex ma inti biss taħżen 15 frejm ta '2 minflok? Pjuttost milli t-tip movie ta flowing beautifully, perfettament, jista look like huwa stuttering ftit, skola qodma ftit, iżda l-effett nett ikun li tuża bits ferm inqas milli kieku jkun meħtieġ. Għalhekk, fejn ma dan imbagħad leave us? Dan kien daqsxejn ta 'twarrib fuq fejn inkella inti tista' tmur bil-kompressjoni. Għal aktar tagħrif dwar dan, tieħu klassi bħal CS175 hawn. Hawn eżempju ieħor fi ħdan video. Jekk il-naħla huwa l-unika ħaġa li jiċċaqilqu, inti tista 'verament armih informazzjoni f'dawk frejms tan-nofs minħabba li l-fjuri u l-sema u weraq mhumiex jinbidlu. Imma ejja issa jikkunsidraw wieħed aħħar ħaġa. Fil-5 minuti we leave C lura għal dejjem fil lecture? Iva. Mhux fil-psets, għalkemm. Istorja Last dwar C u mbagħad nagħmlu biex Jittieħed ħafna sexy jinvolvu HTML u Web u Woo HOO-. Kull dritt. Here we go. Dik hija l-motivazzjoni. Jirriżulta dan il-ħin meta aħna ġew miktub programmi we run clang. U clang, konna qal peress li l-ewwel ġimgħa pjuttost ħafna, jieħu kodiċi tas-sors u tikkonverti din fis-kodiċi ta 'oġġett. Huwa jieħu C u tikkonverti din fis-0s u 1s. Stajt tip ta ġie tinsab lilek għal ftit ġimgħat għaliex mhuwiex daqshekk sempliċi bħal dik. Hemm ħafna aktar għaddejjin taħt il-barnuża meta inti tmexxi programm bħal clang. Fil-fatt, il-proċess tal-kompilazzjoni ta 'programm jista' verament jiġi mqassar, kif inti tista 'recall mill-video Rob fuq kompilaturi, fis-dawn il-passi 4: qabel l-ipproċessar, ġbir innifsu, assemblaġġ, u jgħaqqdu. Iżda aħna fil-klassi u aktar nies fid-dinja tipikament tqassar kollha ta 'dawn il-passi biss bħala "kumpilazzjoni". Iżda jekk nibdew bil-kodiċi sors bħal dan, wieħed jiftakar li dan huwa forsi l-programm C sempliċi konna bil-miktub s'issa, ifakkar li meta miġbura dan jispiċċa tfittex bħal dan. Iżda hemm attwalment pass intermedju, u dawk il-passi huma li ġejjin. L-ewwel hemm dan ħaġa fuq nett ta 'dan u aktar ta' programmi tagħna, # Jinkludu Xi jfisser # Jinkludu do għalina? Hija kopji pretty ħafna u pejst tal-kontenut tar stdio.h fil-fajl tiegħi hekk li għaliex? Għaliex għandi kura dwar il-kontenut ta stdio.h? X'hemm fil hemmhekk ta 'interess? Dikjarazzjoni printf, il-prototip tiegħu, b'tali mod li l-kumpilatur imbagħad jaf dak li jfisser I meta nsemmi din il-funzjoni printf. Allura pass 1 fil-kumpilazzjoni hija pre-proċessar, fejn programm bħal clang jew xi programm helper li clang jiġi ma taqra top kodiċi tiegħek għal isfel, xellug għal-lemin, u kull darba li jara simbolu # segwit minn keyword bħal jinkludu, li jwettaq din l-operazzjoni, l-ikkupjar u pasta f'dan il-każ stdio.h fil-fajl tiegħek. Li pass 1. Imbagħad għandek fajl C ħafna akbar minħabba l-kopja enormi, xogħol pejst li jinsab biss ġara. 2 Pass issa qed tiġbor. Iżda jirriżulta kompilazzjoni jieħu kodiċi sors li tidher bħal dan u jibdel din in xi ħaġa li tidher bħal dan, li għal dawk familjari huwa msejjaħ? >> [Student] Assemblea. Lingwa Assemblea. >> Dan huwa attwalment xi ħaġa jekk inti tieħu CS61 inti ser adsa fis f'aktar dettall. Dan huwa biss dwar qrib kemm int tista 'tieħu għall-kitba 0s u 1s innifsek iżda bil-miktub affarijiet b'tali mod li xorta jagħmel għall-inqas xi ftit ta 'sens. Dawn huma l-istruzzjonijiet tal-magni, u jekk aħna iscroll sal-funzjoni prinċipali hawnhekk, avviż li hemm din l-istruzzjoni timbotta, jimxu istruzzjoni, naqqas istruzzjoni, sejħa istruzzjoni, u oħrajn. Meta inti tisma li l-kompjuter tiegħek Intel ġewwa, għandek CPU Intel fil Mac tiegħek jew PC, xi jfisser? A CPU taqa mibnija minn kumpaniji bħal Intel fehim ċerti struzzjonijiet. Huma jkollhom l-ebda idea liema funzjonijiet simili swap huma jew ewlenin huma per se, iżda dawn ma jafu liema baxx ħafna ta 'livell istruzzjonijiet simili żid, naqqas, timbotta, jiċċaqalqu, sejħa, u oħrajn huma. Allura meta inti tiġbor kodiċi C fil-lingwa assemblaġġ, ħafna utent tiegħek faċli li tħares 'kodiċi hija konvertita xi ħaġa li tidher bħal dan, li litteralment jiċċaqlaq bytes jew 4 bytes madwar f'unitajiet żgħar bħal dawn fi u barra mill-CPU. Iżda fl-aħħar, meta clang hija lesta li tieħu din ir-rappreżentanza tal-programm tiegħek fil 0s u 1s, allura l-pass imsejħa assemblaġġ jiġri, u dan jerġa kollu jiġri fil-blink ta 'għajn waqt il-ġiri clang. Aħna tibda hawn, huwa outputs fajl bħal dan, u allura tikkonverti għal dawn 0s u 1s. U jekk inti tixtieq li tmur lura f'xi punt u fil-fatt tara dan fl-azzjoni, jekk mmur fis hello1.c--dan huwa wieħed mill-programmi ħafna ewwel ħarisna lejn - normalment aħna se tiġbor din l hello1.c clang u dan jagħti lilna a.out. Jekk b'kuntrast, inti minflok tagħtiha l-S-bandiera, dak li int ser tikseb hija hello1.s u tkun taf attwalment ara l-lingwa assemblaġġ. Jien tagħmel dan għal programm qasir ħafna, imma jekk inti tmur lura għall-ġirja jew Jirkupraw jew kwalunkwe programm li inti ħadthom bil-miktub u biss mill-kurżità trid tara dak li attwalment tidher qiesha, dak li fil-fatt qed jiddaħħlu fil-CPU, inti tista 'tuża l-S-bandiera ma clang. Iżda mbagħad fl-aħħar, hemm xorta waħda gotcha. Hawn huma l-0s u 1s li jirrappreżentaw implimentazzjoni tiegħi ta 'hello, dinja. Imma I użati funzjoni xi ħadd ieħor fil-programm tiegħi. Għalhekk anki jekk il-proċess kien I jieħdu hello.c, jiġrilha miġbura fil-kodiċi assemblaġġ, u mbagħad jiġrilha mmuntati fi 0s u 1s, l-unika 0s u 1s li huma outputted f'dan il-punt fil-ħin huma dawk li jirriżultaw mill-kodiċi tiegħi. Iżda l-persuna li kiteb printf, huma miġbura kodiċi tagħhom 20 sena ilu u huwa issa installat x'imkien fuq l-appliance, hekk aħna b'xi mod ikollhom jingħaqdu 0s tiegħu jew tagħha u 1s ma 0s tiegħi u 1s, u dan iwassalna għall-pass 4 u finali tal-kompilazzjoni, magħrufa bħala jgħaqqdu. Allura fuq in-naħa tax-xellug għandna l-istess stampa eżatta bħal qabel: hello.c isir kodiċi assemblaġġ isir 0s u 1s. Imma ifakkar li I użat l-istandard I / O librerija fil-kodiċi tiegħi, u dan ifisser x'imkien fuq il-kompjuter hemm fajl imsejjaħ stdio.c jew għall-inqas il-verżjoni ikkumpilata minnhom minħabba xi ħadd xi snin ilu miġbura stdio.c fis-kodiċi assemblaġġ u mbagħad mazz sħiħ ta '0s u 1s. Dan huwa dak magħruf bħala statika jew librerija dinamiku. Huwa xi fajl seduta x'imkien fl-appliance. Iżda fl-aħħar, I għandhom jieħdu 0s tiegħi u 1s u 0s dik il-persuna u 1s u b'xi mod jorbtuhom flimkien, litteralment jgħaqqdu dawk 0s u 1s fis-fajl wieħed imsejjaħ a.out jew hello1 jew kwalunkwe I imsejħa programm tiegħi b'tali mod li r-riżultat aħħari tkun kollha tal-1s u 0s li għandhom jikkomponu programm tiegħi. Allura dan il-ħin dan is-semestru meta inti kont qed tuża clang u aktar reċentement taħdem jagħmlu sabiex jiddekorri clang, kollha ta 'dawn il-passi ġew jiġri tip ta' instantanju imma very deliberatament. U hekk jekk inti tkompli fuq fix-xjenza tal-kompjuter, jiġifieri CS61, dan huwa s-saff li inti ser tkompli qoxra lura off hemm jitkellem dwar l-effiċjenza, l-implikazzjonijiet ta 'sigurtà, u materjal simili ta' dawn id-dettalji livell aktar baxx. Iżda ma 'dan, aħna qed waslu biex jitilqu C lura. Ejja jimxi 'l quddiem u tieħu 5-minuta break tagħna issa, u meta niġu lura: l-Internet. Kull dritt. Aħna lura. Issa aħna jibdew ħarsa tagħna mhux biss fil HTML għaliex, kif se tara, HTML innifsu huwa attwalment pjuttost sempliċi imma verament fil-programmazzjoni web aktar ġenerali, netwerking aktar ġenerali, u kif kollha ta 'dawn it-teknoloġiji jiġu flimkien li tippermetti magħna biex jinħolqu programmi ferm aktar sofistikati atop l-Internet minn s'issa aħna kont qed kapaċi f'dawn twieqi iswed u abjad. Tabilħaqq, f'dan il-punt fil-semestru anke jekk aħna se jqattgħu ħin relattivament inqas fuq PHP, HTML, CSS, JavaScript, SQL u aktar, istudenti aktar ma jispiċċaw jagħmlu proġetti finali li huma fuq l-internet għaliex kif tkun taf tara, l-isfond issa għandek fis-C huwa ferm applikabbli għal dawn il-lingwi ta 'livell ogħla. U kif inti tibda taħseb dwar il-proġett finali tiegħek, li, ferm simili Set Problema 0, fejn inti kienu mħeġġa biex tagħmel xejn aktar ta 'interess għalik fil Scratch, il-proġett finali huwa opportunità tiegħek biex tieħu l-għarfien newfound tiegħek u sofistikati ma 'C jew PHP jew JavaScript jew simili out għal spin u joħolqu biċċa tiegħek stess ta 'softwer għad-dinja biex tara. U biex żerriegħa inti ma ideat, taf li inti tista 'ras hawn, projects.cs50.net. Kull sena, aħna jitolbu ideat minn fakultà u l-istaff u l-gruppi istudenti fuq il-kampus biss biex jissottomettu l-ideat tagħhom għal affarijiet interessanti li jistgħu jiġu solvuti jużaw il-kompjuters, jużaw websajts, permezz ta 'softwer. Mela jekk inti qed jitħabtu biex toħroġ bi idea tal tiegħek, bil-mezzi kollha iscroll permezz l-ideat hemmhekk minn din is-sena u l-aħħar. Huwa perfettament okay biex tindirizza proġett li ġie ttrattat qabel. Rajna apps ħafna għall jaraw l-istatus ta 'laundry fuq il-kampus, apps ħafna għall-navigazzjoni tal-menu sala dining, apps ħafna għall-navigazzjoni tal-katalogu tal-kors u simili. U fil-fatt, għal taħdita futur u f'seminars futuri, aħna ser jintroduċu inti għal xi APIs pubblikament disponibbli, kemm kummerċjalment disponibbli kif ukoll hawn disponibbli minn CS50 fuq il-kampus sabiex ikollok aċċess għal data u tista 'mbagħad tagħmel affarijiet interessanti magħha. Allura aktar fuq proġetti finali fi ftit jiem meta aħna rilaxx l-ispeċifikazzjoni, iżda għal issa, taf li inti tista 'taħdem solo jew ma' wieħed jew tnejn ħbieb fuq ħafna kull proġett ta 'interess għalik. L-Internet. Inti tmur quddiem u iġbed il-laptop tiegħek, inti tmur facebook.com għall-ewwel darba, li ma illoggjat reċentement, u hit Ikteb. X'inhuma eżattament jiġri? Meta inti hit Ikteb fuq il-kompjuter tiegħek, mazz sħiħ ta 'passi tibda tip ta magically jiġri. Allura inti hawn fuq ix-xellug web server bħal Facebook huwa hawn fuq il-lemin u b'xi mod inti qed tuża din il-lingwa imsejħa HTTP, hypertext Trasferiment Protokoll. HTTP ma tkunx lingwa ta 'programmar. Huwa aktar ta 'protokoll. Huwa sett ta 'konvenzjonijiet li web browsers u s-servers tal-web jużaw meta interkomunikatorju. U dak li dan ifisser huwa kif ġej. Ħafna bħal fid-dinja reali, għandna dawn il-konvenzjonijiet fejn jekk inti tissodisfa xi bniedem għall-ewwel darba, jekk inti ma mind me humoring hawn, I tista 'toħroġ lilek, jiġifieri, "Hi, jien jisimni David." >> Hi, David. Jisimni Sammy. "Hi, David. Jisimni Sammy." Allura issa għandna biss involuti f'dan it-tip ta 'protokoll tal-bniedem iblah fejn I bdew il-protokoll, Sammy wieġbet, konna jitħawwad idejn, u t-transazzjoni hija kompluta. HTTP huwa simili ħafna fl-ispirtu. Meta t-talbiet tiegħek web browser www.facebook.com, dak browser tiegħek huwa verament tagħmel huwa li testendi naħa tiegħu, biex ngħidu hekk, għall-server u huwa jibagħtuha messaġġ. U li l-messaġġ huwa tipikament xi ħaġa simili nikseb - dak li tridu biex jiksbu? - nikseb me-home page, li tipikament huwa indikat permezz linja waħda mmejla fl-aħħar ta 'URL. U biss sabiex inti tkun taf liema lingwa jien speaking, I-browser am ser jgħidlek li jien jitkellem verżjoni HTTP 1.1, U wkoll għal miżura tajba, jien ser jgħidlek li l-ospitanti li nixtieq il-home page ta ' huwa facebook.com. Tipikament, web browser, unbeknownst lilek, il-bniedem, jibgħat dan il-messaġġ madwar l-Internet meta inti sempliċiment tip www.facebook.com, Daħħal, fil-browser tiegħek. U dak ma Facebook jirrispondu ma? Huwa jirrispondi ma 'xi dettalji simili li tħares cryptic iżda wkoll ħafna aktar. Let me imorru quddiem to home page Facebook hawn. Dan huwa l-iskrin li ħafna minna probabbilment qatt ma tara jekk inti toqgħod illoggjat kollha tal-ħin, iżda dan huwa verament il-paġna dar tagħhom. Jekk nagħmlu dan fil Chrome, avviż li inti tista 'pull up dawn menus kuntest ftit. Bl-użu Chrome, kemm jekk fuq Mac OS, Windows, Linux, jew bħalhom, jekk inti Kontroll click jew ikklikkja xellug, inti tista 'tipikament pull up menu li tidher bħal dan, fejn ftit għażliet tistenna, li waħda minnhom hija Sors Page View. Tista 'wkoll tipikament tikseb dawn l-affarijiet billi tmur l-menu View u poking madwar. Per eżempju, hawn taħt View, Developer huwa l-istess ħaġa. Jien ser jimxi 'l quddiem u tħares lejn Sors Page View. Dak li inti ser tara l-HTML li Mark kiteb li jirrappreżenta facebook.com. Huwa mess komplet hawn, imma aħna ser tara li dan jagħmel sens ftit aktar qabel twil. Iżda hemm xi xejriet hawn. Let me iscroll li Jittieħed bħal dan. Dan huwa diffiċli għal bniedem li jaqra, iżda avviż li hemm dan il-mudell ta 'parentesi angolati ma keywords bħal għażla, keywords bħal valur, xi strings kkwotati. Dan huwa fejn, meta inti ffirmaw għall-ewwel darba, speċifikat liema sena tat-twelid tiegħek. Dan menu drop-down ta 'snin tat-twelid huwa b'xi mod kodifikata hawn f'din il-lingwa imsejħa HTML, HyperText Markup Language. Fi kliem ieħor, meta browser tiegħek jitlob paġna web, titkellem din il-konvenzjoni imsejħa HTTP. Imma dak ma facebook.com tirrispondi għal dik it-talba ma? Huwa jirrispondi ma 'wħud minn dawn il-messaġġi cryptic, kif aħna ser tara fil-mument. Iżda l-maġġoranza ta 'rispons tiegħu huwa fil-forma ta HTML, HyperText Markup Language. Dik hija l-lingwa proprja ta 'web page huwa miktub. U liema web browser verament ma allura hi, mal-wasla ta 'xi ħaġa li tidher bħal dan, jaqraha fuq għal isfel, xellug għal-lemin, u kull darba li jara wieħed minn dawn parentesi angolati segwit minn keyword bħal għażla, ikollu din il-lingwa markup fil-mod xieraq. F'dan il-każ, ikun juri menu drop-down ta 'snin. Iżda għal darb'oħra, dan huwa mess kompluta li tħares lejn. Dan mhux minħabba l-iżviluppaturi Facebook manifest 0 għal 5 għall-istil, per eżempju. Dan huwa minħabba li ħafna tal-kodiċi li jiktbu, fil-fatt, bil-miktub beautifully, ukoll, ikkummenta: nicely indentati, u simili, iżda ta 'magni kors, kompjuters, browsers verament ma jagħtux kkritikat jekk kodiċi tiegħek huwa tajjeb styled. U fil-fatt, huwa kompletament ħela li taħbat l-ewlenin tab kollha dawk il-ħinijiet u li jpoġġu l-kummenti kollha matul kodiċi tiegħek u tagħżel ismijiet verament deskrittivi varjabbli għaliex jekk il-browser ma care, kollha qed tagħmel fl-aħħar tal-ġurnata huwa ħela bytes. Allura jirriżulta liema websites l-iktar tagħmel hu anke jekk il-source code għall facebook.com, għall cs50.net u kollha ta 'dawn is-siti l-oħra fuq l-Internet huma tipikament ukoll bil-miktub u sew kkummentaw u nicely indentati u simili, tipikament qabel l-websajt hija tpoġġi fuq l-Internet, il-kodiċi hija minified, fejn il-HTML u CSS l - xi ħaġa oħra aħna ser hekk ara - il-kodiċi JavaScript aħna ser hekk ara huwa kompressat, fejn ismijiet varjabbli twil issir X u Y u Z, u kollha ta 'dak whitespace li jagħmel kollox tfittex hekk li tinqara hija kollha jintrema, għaliex jekk inti taħseb dwar dan il-mod, Facebook gets paġna biljun hits kuljum - xi ħaġa crazy bħal dik - hekk jekk dak programmer biss li jkun anali hit l-ispazju bar darba żejjed biss biex inċiż xi linja tal-kodiċi dejjem tant aktar? X'hemm-implikazzjoni jekk Facebook priżervi li whitespace fil kollha tal-bytes li jibagħtu lura lejn nies fuq l-Internet? Tolqot il-bar-ispazju darba tagħtik byte żejda fil-fajl tiegħek. U jekk biljun persuna mbagħad jipproċedi li tniżżel il-home page dik il-ġurnata, kemm data aktar usted trasmessi fuq l-Internet? A gigabyte għall-ebda raġuni tajba. U mogħtija, għal-lott ta 'websajts din mhix tali kwistjoni jistgħu jegħlbuhom magħhom, iżda għall Facebook, għall-Google, għal xi wħud mill-aktar websajts popolari hemm inċentiv kbir finanzjarjament biex jagħmlu kodiċi tiegħek look like a mess sabiex inti qed tuża bħala bytes ftit kemm possibbli barra l allura kompressjoni lilha użu xi ħaġa bħal zip, algoriżmu imsejħa gzip, li l-browser ma għalik awtomatikament. Iżda dan huwa orribbli. Aħna qatt ma ser jitgħallmu xi ħaġa dwar websajts nies oħrajn u kif disinn paġni web jekk irridu nħarsu lejn dan bħal dan. Allura fortunatament, browsers bħall Chrome u IE u Firefox dawn il-jiem tipikament jiġu mal-għodod iżviluppatur mibnija fil-. Fil-fatt, jekk I jinżlu hawn biex Spezzjona Element jew jekk mmur View, Developer, u mur Għodod Developer espliċitament, dan il-tieqa fil-qiegħ ta l-iskrin tiegħi issa pops up. Huwa ftit intimidanti fl-ewwel għaliex hemm ħafna ta 'tabs familjari hawn, imma jekk I ikklikkja fuq Elementi it-triq kollha fil-qiegħ tax-xellug, Chrome hija ovvjament pretty intelliġenti. Huwa jaf kif tinterpreta kollha ta 'dan il-kodiċi. U iva, liema Chrome ma huwa cleans up kollha ta HTML Facebook. Anki jekk hemm mhux whitespace hemm, hemm Ma indentazzjoni hemm, issa avviż li jien tista 'tibda biex jinnaviga din il-paġna web l-aktar ġerarkiku. Jirriżulta li kull paġna tal-web miktub f'lingwa imsejjaħ HTML5 għandhom jibdew ma 'dan, din id-dikjarazzjoni DOCTYPE, biex ngħidu hekk: Huwa tip ta 'dawl u griż hemmhekk, iżda li l-linja ewwel ta' kodiċi f'dan il-fajl, u li biss jirrakkonta l-browser, "ħej, hawn taqa xi HTML5. Hawnhekk tidħol web page." L parentesi miftuħa 1 lil hinn minn dak li jiġri li jkun dan il-ħaġa, miftuħ parentesi tag HTML, u mbagħad jekk I adsa aktar profonda - dawn vleġeġ huma kompletament bla sens; dawn huma biss għall-finijiet preżentazzjoni, dawn mhumiex attwalment fil-fajl - avviż li ġewwa ta 'tag HTML Facebook, xi ħaġa li tibda ma' parentesi miftuħa u dakinhar kelma jissejjaħ tag. Allura ġewwa l-tikketta HTML hija apparentement tag ras u tag korp. Ġewwa tal-lametta ras issa huwa mess kollu għall Facebook minħabba li għandhom ħafna ta 'metadata u affarijiet oħra għall-marketing u r-reklamar. Imma jekk aħna iscroll, down, down, down, ejja ara fejn hu. Hawnhekk huwa. Dan huwa wieħed mill-inqas kemmxejn familjari. It-titolu tal-paġna dar Facebook, jekk inti qatt tfittex fil-tab fil-bar titolu tiegħek, huwa Merħba għall Facebook - Log In, Sign Up jew Learn More. Dak hu li inti tara fil-bar titolu Chrome, u li l-mod kif huwa rappreżentat fil-kodiċi. Jekk aħna jinjora kollox fir-ras, ħafna mill-imsaren ta 'paġna web huma fil-ġisem, u jirriżulta li l-kodiċi Facebook huwa ser tfittex aktar kumplessi minn aktar affarijiet aħna ser jiktbu inizjalment biss għaliex huwa kien mibnija matul is-snin, imma hemm lott kollu ta 'tikketti iskrittura, JavaScript kodiċi, li jagħmel il-websajt ħafna interattiv: jaraw aġġornamenti istatus istantanju jużaw lingwi bħal JavaScript. Hemm xi ħaġa imsejħa div, li hija diviżjoni ta 'paġna. Iżda qabel ma nikbru għal dak dettall, ejja jippruvaw li zoom out u ħarsa lejn verżjoni aktar sempliċi ta 'Facebook 1.0, biex ngħidu hekk. Hawn hu l-hello, dinja ta 'paġni tal-web. Hija dik id-dikjarazzjoni DOCTYPE fuq nett li huwa xi ftit differenti minn kull ħaġa oħra. Xejn aħna tikteb fil-paġna tal-web se tibda bil għall kuraġġużi. Għal darb'oħra, l-istorja hija l-istess: bonjour, comma, jibdew jagħmlu dan grassa, imbagħad fid-dinja gets stampat b'tipa grassa, u dan ifisser stop-istampar dan b'tipa grassa. Let me imorru quddiem u ħlief fajl tiegħi, mur lura għall Chrome, jien ser zoom biss hekk nistgħu naraw dan aħjar, u rikarigu, u tkun taf tara li dinja issa hija b'tipa grassa. Il-Web hija kollha dwar hyperlinks, so ejja imorru quddiem u tagħmel dan: website favorit tiegħi huwa, ejja ngħidu, youtube.com. Save, rikarigu. Okay. Hemm problemi koppja issa minbarra l hideousness tal-websajt. 1, jien pretty żgur I hit Ikteb hawn. U jien għamilt. I mhux biss hit Ikteb, I wkoll indentati, prattikanti dak li aħna kont qed jippriedka dwar stil, iżda tiegħi huwa dritt li jmiss dinja. Allura għaliex huwa dan? Browsers biss tagħmel dak li jgħidulhom li jagħmlu. I ma qal lill-browser, "linji Break hawn. Daħħal il-paragrafu break hawn." Allura l-browser, ma jimpurtax jekk I hit Ritorn 30 darba, huwa għadu għaddej biex id-dritt tiegħi li jmiss għall-dinja. What I really għandek tagħmel hawnhekk huwa ngħid xi ħaġa simili
, daħħal pawża linja. U fil-fatt, waqfa linja huwa tip ta 'ħaġa stramb għaliex inti ma tistax verament bidu li jiċċaqalqu lejn Stat linja, imbagħad tagħmel xi ħaġa, u imbagħad jieqaf jimxu għal linja ġdida. Huwa tip ta 'operazzjoni atomiku. Inti jew tagħmel dan jew inti ma. Inti hit Ikteb jew inti ma. Allura br huwa xi ftit ta 'tag differenti, u għalhekk għandi bżonn biex issolvi kemm miftuħa u jingħalaq kollha f'daqqa. Is-sintassi għal dan hija din. Teknikament, inti tista 'tagħmel xi ħaġa bħal din f'ċerti verżjonijiet tal HTML, iżda dan huwa biss stupid għaliex hemm l-ebda raġuni biex tibda u tieqaf xi ħaġa jekk inti tista 'minflok tagħmel dan kollu f'daqqa. Tirrealizza li HTML5 ma strettament jeħtieġu dan mmejla, sabiex inti se tara kotba u r-riżorsi online li ma jkollhomx dan, iżda għal miżura tajba ejja prattika l-simetrija li Rajna s'issa. Dan ifisser li t-tikketta hija kemm miftuħa u magħluqa. Allura issa let me jiffrankaw fajl tiegħi, mur lura hawn. Okay, hekk huwa tibda tħares aħjar, ħlief il-Web naf huwa tip ta clickable, u għadhom youtube hawn ma tidhirx li twassal għal xejn. Dak għax minkejja li qisu rabta, il-browser ma jkunx jaf li per se, so I għandhom tgħid il-browser li dan huwa rabta. Il-mod biex isir dan huwa l-użu ta 'lametta ankra: u let me jimxu dan għal linja ġdida biss hekk huwa ftit aktar tinqara, u jien ser tiċkien-daqs tat-tipa. Am I isir s'issa? No M'hemm għaddej biex tkun din id-dikotomija. Dan tikketta, l-tikketta ankra, tabilħaqq tieħu attribut, li timmodifika l-imġiba tagħha, u l-valur ta 'dik l-attribut huwa apparentement URL YouTube s. Iżda avviż l-dikotomija li huwa biss minħabba li l-URL int ser, dan ma jfissirx li għandu jkun l-kelma li int tenfasizza u jagħmlu rabta. Pjuttost, din tista 'tkun xi ħaġa bħal din. Allura jien ngħid tieqaf tagħmel din il-kelma hyperlink billi tuża l-tikketta ankra qrib. Avviż Jien ma tagħmel dan. 1, dan se jkun biss ħela ta 'ħin ta' kulħadd u mhuwiex neċessarju. Li tagħlaq tag, inti biss isemmu l-isem tal-lametta ġdid. Inti ma jsemmi l-ebda mill-attributi. Mela ejja ħlief li, jmorru lura. Okay, voila, issa huwa blu u hyperlinked. Jekk I ikklikkja dan, I attwalment do mur YouTube. Allura anke jekk il-paġna web tiegħi ma tkunx fuq l-Internet, huwa inqas HTML, u jekk aħna let l-Internet ilaħħqu, aħna fil-fatt jispiċċaw hawn fuq youtube.com. U jien tista 'tmur lura u hawnhekk il-paġna web tiegħi. Iżda Avviż dan. Jekk inti stajt qatt gotten spam jew attakk phishing, issa inti għandek il-ħila wara biss ħames minuti biex jagħmlu l-istess. Aħna tista 'tmur hawn u tagħmel xi ħaġa simili www.badguy.com jew ikun x'ikun l-websajt vaga hija, u allura inti tista 'tgħid tivverifika PayPal kont tiegħek. [Rires] U issa dan se jmorru għall badguy.com, li jien mhux ser ikklikkja fuq għaliex għandi ebda idea fejn dan iwassal. [Daħk] Imma issa għandna l-ħila li attwalment jispiċċaw hemmhekk. Allura aħna qed verament biss jibdew tobrox il-wiċċ. Aħna ma l-ipprogrammar per se; aħna qed miktub lingwa markup. Iżda hekk kif aħna round vokabularju tagħna fil HTML, aħna ser nintroduċu PHP, ta 'lingwa ta' programmar attwali li se jħallina naħsdu biex jiġġeneraw HTML awtomatikament, jiġġeneraw CSS awtomatikament, sabiex inkunu nistgħu jibdew nhar l-Erbgħa biex jimplimentaw, jiġifieri, stess search engine tagħna u aktar. Iżda aktar fuq li fi ftit jiem. Aħna ser tara int imbagħad. [CS50.TV]