1 00:00:00,000 --> 00:00:02,440 [Powered by Google Translate] [Həftə 7] 2 00:00:02,440 --> 00:00:04,730 [David J. Malan - Harvard Universiteti] 3 00:00:04,730 --> 00:00:07,490 [Bu CS50 edir. - CS50.TV] 4 00:00:07,490 --> 00:00:12,280 Bütün hüquqlar. Geri gəlmisiniz. Bu CS50, bu həftə 7 başlanğıc. 5 00:00:12,280 --> 00:00:14,690 Az elanlar Bir neçə: 6 00:00:14,690 --> 00:00:18,150 Pset5, tərəqqi indi, və ya tezliklə olmalıdır 7 00:00:18,150 --> 00:00:21,590 və kifayət qədər vicdanla, mənə deyək, bu, daha çətin arasında olur deyil 8 00:00:21,590 --> 00:00:24,460 zamanı problem dəstləri, bu artıq mənim qeyd edək 9 00:00:24,460 --> 00:00:28,190 Bu həftə çox heç gözləmək yoxdur ki, çərşənbə gecə, demək 10 00:00:28,190 --> 00:00:29,920 və ya Cümə axşamı gecə daxil dalış 11 00:00:29,920 --> 00:00:32,369 Bu mütləq bir maraqlı pset edir. Biz bunu əyləncə hesab edirəm. 12 00:00:32,369 --> 00:00:36,110 Həqiqətən tam doğru almaq və sonra qondarma Big Board meydan bilər, 13 00:00:36,110 --> 00:00:39,830 Siz əlbəttə heyəti bəzi fikir uyğun bir imkan olacaq 14 00:00:39,830 --> 00:00:41,620 və sinif yoldaşları bəzi. 15 00:00:41,620 --> 00:00:44,670 Nə Böyük heyəti deyil, bir dəfə sizin yazım checker iş var 16 00:00:44,670 --> 00:00:48,860 Bir komanda çalışan sonra cs50.net getmək üçün bilərsiniz 17 00:00:48,860 --> 00:00:52,430 sırf məbləği zaman və RAM miqdarı və daha sonra üstünlük və 18 00:00:52,430 --> 00:00:56,130 Sizin həyata istifadə edən kurs ana səhifə burada sərgilənəcək. 19 00:00:56,130 --> 00:00:59,740 Siz burada bu insanlar bütün dəstə kadr kimi listelenen görəcəksiniz 20 00:00:59,740 --> 00:01:04,220 həftə sonu bəri heyət hər bir digər geçmek üçün cəhd əyləncə olacağını düşündüm. 21 00:01:04,220 --> 00:01:07,390 Belə ki, burada məqsəd heyəti geçmek deyil bilirik. 22 00:01:07,390 --> 00:01:09,790 Hətta sayı 13 yalnız buradayam. 23 00:01:09,790 --> 00:01:13,790 Purely katılmayı, lakin görmək imkanı yalnız nə qədər az RAM 24 00:01:13,790 --> 00:01:16,790 və necə bir neçə CPU saniyə sizin sinif yoldaşları ilə qarşı-qarşıya bəzi istifadə edə bilərsiniz. 25 00:01:16,790 --> 00:01:20,540 >> Mən ki, Kevin Michael Schmid, qəbul edəcəyik 26 00:01:20,540 --> 00:01:23,750 Hal-hazırda TFS biri kimi sayı 1 mövqeyi, 27 00:01:23,750 --> 00:01:28,120 bu mümkün deyil zəng bir təzahürüdür 28 00:01:28,120 --> 00:01:32,700 o loading üçün demək olar ki 0 RAM və demək olar ki 0 seconds istifadə ki verilir. 29 00:01:32,700 --> 00:01:35,670 Beləliklə, biz Kevin offline qayğı lazımdır. [Gülüş] 30 00:01:35,670 --> 00:01:40,950 Kevin burada test qoyulması edir ki, müəyyən bacarıqları var. 31 00:01:40,950 --> 00:01:45,280 Biz istədiyiniz fikir şeylərdən biri də CS50x tərəqqi bir həftə artıq 32 00:01:45,280 --> 00:01:49,520 və uşaqlar kimi çox o tələbə kimi bu təcrübə bir hissəsidir. 33 00:01:49,520 --> 00:01:53,720 Biz Not layihə təqdim eyni idi, onların pset0 hissəsi kimi onlara xahiş etdik 34 00:01:53,720 --> 00:01:58,280 onlara maraq - bir oyun, sənət interaktiv parça, bir animasiya, və ya kimi - 35 00:01:58,280 --> 00:02:03,700 1 - onlar dünyaya merhaba deyən və kim istəyirsinizsə 2 dəqiqəlik video, onlar həqiqətən var. 36 00:02:03,700 --> 00:02:06,780 Mən sizə bu günə qədər təqdim olunmuş video bir neçə bölüşmək istədiyiniz fikir 37 00:02:06,780 --> 00:02:10,759 bizim üçün, heyət ən azı, həqiqətən maraqlı olmuşdur, çünki 38 00:02:10,759 --> 00:02:14,220 və bütün dünyada bu insanlar görmək üçün ruhlandırıcı - bütün dünyada ölkələr - 39 00:02:14,220 --> 00:02:18,160 İnternet bir kompüter kursu, hər şeyi də tuning, 40 00:02:18,160 --> 00:02:20,410 onlar öz tədqiqatları davam etdirmək istəyirik Çünki, istər 41 00:02:20,410 --> 00:02:22,300 onlar, yeni bir istiqamətdə öz karyeralarını etmək istəyirəm 42 00:02:22,300 --> 00:02:24,390 Onlar öz bilik boşluqları doldurmaq istəyirəm 43 00:02:24,390 --> 00:02:27,190 uşaqlar bəlkə burada olmuşdur ki, eyni səbəblərdən bəzi belə. 44 00:02:27,190 --> 00:02:31,090 >> Mən burada belə bir tələbə verir. Siz həcmi yalnız bir az qaldırmaq bilər. 45 00:02:31,090 --> 00:02:35,520 Burada tələbə 1-dəqiqə təqdim biridir. 46 00:02:35,520 --> 00:02:40,380 Salam, dünya. Mən Malaga, İspaniya burada sənaye engineering tələbə edirəm. 47 00:02:40,380 --> 00:02:45,840 Mən kompüter sevgi, çünki mən həqiqətən bu online kurs heyecan edirəm 48 00:02:45,840 --> 00:02:48,880 və mən həqiqətən mən bunu araşdırmaq almaq üçün təşəkkür edirik. 49 00:02:48,880 --> 00:02:51,940 Mən sizə uşaqlar hər şeyi eyni öyrənə bilərsiniz ki, 50 00:02:51,940 --> 00:02:57,040 ancaq mən Malaga am Harvard olan ki, necə zəhmli edir? 51 00:02:57,040 --> 00:03:02,040 Bəli, mən Fernando am, və bu CS50 edir. Uşaqlar baxın. 52 00:03:02,040 --> 00:03:07,100 [Gülüş] xüsusən kimi digər clip, bu centlmen ingilis qədər güclü deyil ki, tapa bilərsiniz. 53 00:03:07,100 --> 00:03:11,520 O maşın tərcümə idi kimi görünür, tərcümələr özlərini bir az qüsurlu belə 54 00:03:11,520 --> 00:03:15,790 lakin bu günə qədər həm bizim favoritlərindən biri idi. 55 00:03:25,080 --> 00:03:29,980 [♪ ♪] 56 00:03:29,980 --> 00:03:32,370 Salam, dünya. [Yapon danışan] 57 00:03:32,370 --> 00:03:39,830 [Mənim English çox etibarsız çünki Yapon salamlamaq lazımdır.] 58 00:03:39,830 --> 00:03:45,380 [I Gifu şəhəri, Yaponiya sizə mesajı çatdırılıb.] 59 00:03:45,380 --> 00:03:49,820 [I göründüyü kimi, 20 il ərzində ilk dəfə tələbə ola bilər.] 60 00:03:49,820 --> 00:03:54,640 [Mənə bu imkan və edX verən Harvard Universiteti çox minnətdaram.] 61 00:03:54,640 --> 00:04:01,510 [Golf bir gitara və mənim sevimli şey çalışır.] [Gülüş] 62 00:04:01,510 --> 00:04:05,750 [♪ ♪] 63 00:04:05,750 --> 00:04:10,790 [Niyə Mən cs50x iştirak etmək üçün çalışır düşünürsünüz.] 64 00:04:10,790 --> 00:04:14,990 [Harvard Universiteti, mənim arzu edir.] 65 00:04:14,990 --> 00:04:19,740 [Xüsusilə uzaq olması Yaponiya yaşayan am əgər.] 66 00:04:19,740 --> 00:04:26,680 [Mən belə edX zaman. Mövcudluğu dərhal xəbərdar cəhd istəyirdilər] 67 00:04:26,680 --> 00:04:32,500 [Siz I. öyrənmək yaş bağlı olmayan belə düşünmürəm] 68 00:04:32,500 --> 00:04:38,350 [Cs50 mənim arzu edir. My name Kazu və bu cs50 edir.] 69 00:04:38,350 --> 00:04:43,090 [♪ ♪] [alqış və təzahürat] 70 00:04:43,090 --> 00:04:49,220 Bizim bir sevimli kimsə burada bu təqdim edib. 71 00:04:51,070 --> 00:04:55,380 [♪ ♪] [Malan] Google bu meme ilə tanış edirsinizsə. 72 00:04:55,380 --> 00:05:01,480 >> Və sonra nəhayət, bəlkə sitayişə layiq alın ki olunub oldu ki, digər bir neçə. 73 00:05:01,480 --> 00:05:06,820 [Tələbələri] Aww! >> [Malan] Biz qulaq asmaq lazımdır. Bu qısa, belə yaxından qulaq asmaq. 74 00:05:08,580 --> 00:05:11,150 [Qadın natiq] adınız nədir? >> Louie. 75 00:05:11,150 --> 00:05:16,120 [Qadın natiq] Bu nədir? >> [Giggles] CS50. [Gülüş] 76 00:05:16,120 --> 00:05:19,510 [Malan] O, baxmayaraq ki, edir iki idi. 77 00:05:19,510 --> 00:05:22,240 Burada biz, son gedin. 78 00:05:23,030 --> 00:05:26,980 My name Louie və bu CS50 edir. 79 00:05:26,980 --> 00:05:30,250 [Gülüş] Bu sonra CS50x edir. 80 00:05:30,250 --> 00:05:33,230 Evdə birlikdə aşağıdakı isə sizin bütün təşəkkür edirik 81 00:05:33,230 --> 00:05:35,620 İndiyədək kim iştirak edilmişdir. 82 00:05:35,620 --> 00:05:39,510 Bu gün biz, data strukturlarının bizim müzakirə bağlamaq 83 00:05:39,510 --> 00:05:41,160 ən fundamental bəzi ən azı, 84 00:05:41,160 --> 00:05:44,760 və sonra HTML və web proqramlaşdırma haqqında söhbət davam edir. 85 00:05:44,760 --> 00:05:48,520 Həqiqətən, biz yeddi həftə proqramlaşdırma əsasları baxaraq son sərf etdik - 86 00:05:48,520 --> 00:05:50,450 alqoritmlər data strukturları və kimi - 87 00:05:50,450 --> 00:05:53,050 və indiyədək yaşamış bilər C, 88 00:05:53,050 --> 00:05:57,060 mütləq dillərinin ən əlçatan deyil 89 00:05:57,060 --> 00:05:59,090 olan bu fikir bir həyata keçirmək. 90 00:05:59,090 --> 00:06:01,880 Belə ki, bu həftə və gələcək həftə başlayan və sonra aşağıdakı 91 00:06:01,880 --> 00:06:07,110 nəhayət, biz adətən kifayət qədər aşağı səviyyədə dil kimi tanınan C, keçid edə bilərsiniz 92 00:06:07,110 --> 00:06:11,190 şeyi ali onlara PHP, JavaScript arasında səviyyəsi, və kimi, 93 00:06:11,190 --> 00:06:14,850 Biz son bir neçə həftə ərzində öyrəndim ki, eyni dərsləri yararlana göreceksiniz 94 00:06:14,850 --> 00:06:19,430 amma siz tapa bilərsiniz ki, seriallarda və hash masalar kimi şeylər elan və axtarış və çeşidlənməsi 95 00:06:19,430 --> 00:06:23,370 dillər özləri biz istifadə edəcəyik, çünki bu qədər asan ola 96 00:06:23,370 --> 00:06:25,290 daha güclü olacaq. 97 00:06:25,290 --> 00:06:27,410 Lakin ilk, ağacları bir proqram. 98 00:06:27,410 --> 00:06:30,240 Bu məlumat kompres lazımdır bu gün çox ümumi edir. 99 00:06:30,240 --> 00:06:34,770 Nə kontekstində digital informasiya bir növ kompres istəyirsiniz? 100 00:06:37,190 --> 00:06:39,670 >> Bəli. >> [Tələbə] Web üzərində göndərmək üçün lazım olduqda. 101 00:06:39,670 --> 00:06:41,450 Bəli, Web üzərində bir şey göndərmək istədiyiniz zaman. 102 00:06:41,450 --> 00:06:44,950 Bir böyük fayl yüklemek istəyirsinizsə, bu, digər sonunda kimsə əgər ideal deyil 103 00:06:44,950 --> 00:06:48,760 zip format və ya kimi bir şey istifadə edərək fayl sıxılmış edib 104 00:06:48,760 --> 00:06:53,760 yoxsa ötürülən bilər az bit gönderiyorsanız ki. 105 00:06:53,760 --> 00:06:55,500 Belə ki, necə məlumat kompres edirsiniz? 106 00:06:55,500 --> 00:07:00,540 Default tələb az bit istifadə edərək, bütün sonunda aşağı. 107 00:07:00,540 --> 00:07:03,220 Həftə 0 və 1 geri edirəm, çünki Lakin bu maraqlı şey növ 108 00:07:03,220 --> 00:07:07,370 Biz ASCII və ikili danışıb və biz xüsusən haqqında ASCII söhbət zaman 109 00:07:07,370 --> 00:07:10,690 əlifbası məktubları təmsil 8 bit istifadə 110 00:07:10,690 --> 00:07:16,120 məktub A 65 ilə təmsil olunur ki, bir sıra 97 edir kiçik 111 00:07:16,120 --> 00:07:21,210 və lakin siz 7 və ya 8 bit istifadə edirsinizsə, 65 və ya 97 təmsil edir. 112 00:07:21,210 --> 00:07:24,120 Amma tutmaq ingilis əlifbası ilə bəzi məktublar var ki 113 00:07:24,120 --> 00:07:26,230 başqaları kimi məşhur deyil. 114 00:07:26,230 --> 00:07:31,600 Z, bütün populyar deyil Q ki, bütün populyar deyil, A və E məşhur super edir. 115 00:07:31,600 --> 00:07:37,280 Və hələ bu məktubları bütün, default tərəfindən dünya yalnız 8 bit eyni sayda istifadə edir. 116 00:07:37,280 --> 00:07:42,690 Belə ki, asan əgər əvəzinə hər hərf üçün 8 bit istifadə, olmazdı 117 00:07:42,690 --> 00:07:47,440 hətta ən seyrek, Q və Z kimi istifadə 118 00:07:47,440 --> 00:07:51,910 nə biz A və E və S və ən məşhur məktublar üçün az bit istifadə əgər 119 00:07:51,910 --> 00:07:55,000 və daha az populyar məktublar üçün daha bit istifadə 120 00:07:55,000 --> 00:07:57,770 ümumi halda edək optimize olan fikir, 121 00:07:57,770 --> 00:08:01,160 ən baş neler optimize üçün çalışan kompüter bir mövzu deyil 122 00:08:01,160 --> 00:08:05,310 və, evet, baş verə bilər ki, hər şeyi bir az daha çox vaxt, bir az daha çox yer sərf 123 00:08:05,310 --> 00:08:07,680 lakin mütləq tez-tez kimi. 124 00:08:07,680 --> 00:08:09,330 Belə nin nümunə götürək. 125 00:08:09,330 --> 00:08:12,610 >> Biz kifayət qədər səmərəli məlumat kodlar istəyirəm ki, düşünək. 126 00:08:12,610 --> 00:08:15,090 Siz, Morze əlifbası haqqında bir az bir şey bilmədən yetişdi bilər 127 00:08:15,090 --> 00:08:17,450 və Oran, siz faktiki kodu bilmirdim var 128 00:08:17,450 --> 00:08:21,750 ancaq nöqtə və tire ən azı bu seriyası ki, xatırlayıram bilər. 129 00:08:21,750 --> 00:08:26,640 Məsələn, E - Bu kifayət qədər səmərəli coding, və bildiriş ən məşhur məktub - 130 00:08:26,640 --> 00:08:28,980 beeps ən qısa edir. 131 00:08:28,980 --> 00:08:31,740 Morze əlifbası bütün beep-beep-beep-beep-beep-beep və ton təşkil edir 132 00:08:31,740 --> 00:08:34,799 ya vaxtında və ya uzun müddət qısa dövrlər üçün. 133 00:08:34,799 --> 00:08:40,330 Kimi dot ilə qeydi E, super qısa beep, yalnız beep deyil ki, E. təmsil edəcək 134 00:08:40,330 --> 00:08:43,960 Əksinə, T beep kimi, artıq beep olmaq [səs uzadır] ki, 135 00:08:43,960 --> 00:08:45,710 və T. təmsil edəcək 136 00:08:45,710 --> 00:08:48,840 Siz Z baxsaq, əksinə, çünki Lakin, hələ də olduqca qısa 137 00:08:48,840 --> 00:08:52,690 Z bildirmək siz beep, beep [artıq səs], beep, beep [qısa səs] getmək olardı. 138 00:08:52,690 --> 00:08:55,360 Az ümumi, çünki Belə ki, artıq var. 139 00:08:55,360 --> 00:08:58,150 Amma burada gotcha Morze əlifbası bir az flawed ki, 140 00:08:58,150 --> 00:09:00,610 ki, dərhal decodable deyil. 141 00:09:00,610 --> 00:09:07,350 Məsələn, tel beep bəzi sonunda eşitmək güman [qısa] beep [uzun]. 142 00:09:07,350 --> 00:09:12,480 Mən nə mesaj alıram? A nöqtə və tire. Nə təmsil edir? 143 00:09:12,480 --> 00:09:15,330 [Tələbə] A. >> [Malan] Bəlkə. 144 00:09:15,330 --> 00:09:18,270 Bu da T. izlədi E ola bilər 145 00:09:18,270 --> 00:09:23,390 Başqa sözlə, Morze əlifbası, bu künc halda optimize bu prinsipi, içki olsa 146 00:09:23,390 --> 00:09:26,250 o, dərhal decodability özünü borc deyil. 147 00:09:26,250 --> 00:09:29,850 Yəni bu nöqtə və tire eşitmə və ya qəbul edən insan 148 00:09:29,850 --> 00:09:34,540 fasilələri məktubları arasında olduğu birtəhər, anlamaq üçün var 149 00:09:34,540 --> 00:09:39,660 bu fasilələri olduğu siz bilmirsinizsə, siz ET ya əksinə üçün çaşdırmaq bilər çünki. 150 00:09:39,660 --> 00:09:43,880 >> Beləliklə, siz nə ola bilər? Morze əlifbası Siz yalnız məktubları hər arasında duraklattıktan bilər. 151 00:09:43,880 --> 00:09:47,660 Amma duraklatarak şeyi sürətləndirmək bütün point counter növüdür. 152 00:09:47,660 --> 00:09:52,880 Bu pis vəziyyət yox idi biz bir kod ilə gəlib nə əvəzinə əgər 153 00:09:52,880 --> 00:09:56,570 Ü E A Məsələn, bir prefiks deyil - 154 00:09:56,570 --> 00:10:00,020 başqa sözlə, biz nümunələri məşhur məktublar üçün hələ qısa əmin olun bilər 155 00:10:00,020 --> 00:10:04,850 az populyar məktublar üçün uzun, lakin mümkün qarışıqlıq var? 156 00:10:04,850 --> 00:10:08,930 Huffman adı ilə bir adam il əvvəl Huffman coding adlanan bu sxem icad 157 00:10:08,930 --> 00:10:12,390 əslində söhbət zaman bir az sərf etdiyiniz data strukturlarının bir içki 158 00:10:12,390 --> 00:10:16,560 Bu ötən həftə xüsusi ağac, ikili ağac ki, - 159 00:10:16,560 --> 00:10:19,710 2 uşaq çox olan ikili ağac mənası. 160 00:10:19,710 --> 00:10:22,720 Bu bəlkə, bəlkə bir sağ uşaq sol uşaq var ki, bu. 161 00:10:22,720 --> 00:10:26,510 Belə ki, kimsə bir mesaj göndərmək istəyir ki, yalnız müzakirə naminə güman 162 00:10:26,510 --> 00:10:31,270 Bu kimi görünür. Bu tam cəfəngiyatdır, lakin bu kimi ibarət olub, BS, Cs, Ds və Es. 163 00:10:31,270 --> 00:10:34,890 Və faktiki olaraq bütün qədər saymaq olarsa, BS, Cs, Ds və Es 164 00:10:34,890 --> 00:10:36,870 və sonra, məktublar ümumi sayı bölmək 165 00:10:36,870 --> 00:10:42,710 burada bu kiçik chart məktubları 45%-Es var 20% kimi olduğunu deyir 166 00:10:42,710 --> 00:10:45,010 10% pansiyonlar, və s. 167 00:10:45,010 --> 00:10:47,330 Belə ki, başqa sözlə, güman ki, orada sitat string 168 00:10:47,330 --> 00:10:49,080 göndərmək istədiyiniz ki, bəzi göndərmək kifayətdir. 169 00:10:49,080 --> 00:10:52,180 Bu, biz mümkün kimi bir neçə hərflərini kimi istifadə edə bilərsiniz, yalnız belə cəfəngiyyat olmaq olur 170 00:10:52,180 --> 00:10:55,220 amma həqiqətən E ən populyar olaraq qalır halda, var 171 00:10:55,220 --> 00:11:01,450 və B və C olan ən populyar, əlifba bu 5 məktublar ən azı. 172 00:11:01,450 --> 00:11:04,040 Belə ki, necə ki, biz bir kodlama ilə gələn barədə gedə bilər 173 00:11:04,040 --> 00:11:08,430 ikili encoding, bu məktubları hər 0s və 1s bir model 174 00:11:08,430 --> 00:11:14,820 E qısa bir model və bəlkə B və C qədər uzun nümunələri var ki, belə bir şəkildə, 175 00:11:14,820 --> 00:11:19,270 yenə fikir az bit, çox vaxt istifadə etmək istədiyiniz olan 176 00:11:19,270 --> 00:11:21,790 və yalnız bir dəfə isə daha çox bit. 177 00:11:21,790 --> 00:11:26,070 Huffman coding ki, ağacların meşə yarada bilərsiniz. 178 00:11:26,070 --> 00:11:31,190 Bir hekayə line növ ağac və həmçinin onları tikinti prosesi daxildir ki, burada var. 179 00:11:31,190 --> 00:11:32,420 Nin başlasın. 180 00:11:32,420 --> 00:11:36,140 >> Mən sizə belə 5 ağacları, danışmaq, bu meşə ilə başlamaq ki, təklif 181 00:11:36,140 --> 00:11:38,260 olan hər bir sevimli axmaq ağac. 182 00:11:38,260 --> 00:11:42,800 Ağac kimi bir daire ilə burada təmsil yalnız bir node ibarətdir. 183 00:11:42,800 --> 00:11:45,310 Belə ki, bu şeylər hər bir C struct ola bilər 184 00:11:45,310 --> 00:11:50,200 və daxili C struct tezliyi sayı təmsil float ola bilər 185 00:11:50,200 --> 00:11:52,510 və sonra bəlkə məktubu təmsil karakter. 186 00:11:52,510 --> 00:11:56,470 Belə ki, indi, yüksək səviyyədə hər hansı bir köhnə C struct bu qovşaqlarının edirəm amma. 187 00:11:56,470 --> 00:12:01,230 Bu 5 ağacları, yalnız bir node olan hər bir meşə var. 188 00:12:01,230 --> 00:12:06,830 Huffman təklif biz o ağac birləşdirməyə başlayacaq ki, nə 189 00:12:06,830 --> 00:12:11,140 qədər böyük ağac içinə kiçik tezlikli sayılır ki, 190 00:12:11,140 --> 00:12:13,490 yeni kök node ilə birləşdirən. 191 00:12:13,490 --> 00:12:17,560 Belə ki, burada məktubları arasında, rahatlığı üçün mən soldan sağa onlara sıralanır etdik ki, görürsünüz 192 00:12:17,560 --> 00:12:21,420 ki, ciddi zəruri və bildiriş deyil, baxmayaraq ki, kiçik qovşaqlarının 193 00:12:21,420 --> 00:12:23,930 Hal-hazırda 10% və 10% təşkil edir. 194 00:12:23,930 --> 00:12:28,940 Belə Huffman yeni bir ağac o 2 kiçik qovşaqlarının daxil təklif 195 00:12:28,940 --> 00:12:34,450 sonra yeni bir valideyn node tətbiqi və həmin valideyn sol uşaq və hüququ uşaq vermək 196 00:12:34,450 --> 00:12:37,720 B özbaşına sol və C özbaşına hüququ yerləşir. 197 00:12:37,720 --> 00:12:41,590 Və sonra Huffman daha edək indi yalnız sol uşaq hesab edirəm ki, təklif 198 00:12:41,590 --> 00:12:44,790 Bu ağacların biri həmişə 0 təmsil olunur 199 00:12:44,790 --> 00:12:47,890 və sağ uşaq həmişə sayı 1 ilə təmsil olunur. 200 00:12:47,890 --> 00:12:50,680 >> Siz uzun sizin ardıcıl etdiyiniz kimi onlara çevirmek, əgər məsələ deyil. 201 00:12:50,680 --> 00:12:54,650 Belə ki, indi biz bu meşə dörd ağacları var. 202 00:12:54,650 --> 00:12:58,050 Mən demək sol dörd indi çünki ağac - 203 00:12:58,050 --> 00:13:00,570 və bu qədər bu şəkildə artır mənada ki, bir ağac deyil 204 00:13:00,570 --> 00:13:05,170 indi 0,2 iki uşaq valideyn növ olduğu bir ailə ağac kimi daha çox - 205 00:13:05,170 --> 00:13:07,930 ki, valideyn, biz 0,2 tərtib etdik ki, görürsünüz. 206 00:13:07,930 --> 00:13:13,370 Biz iki uşaq tezliyi sayar əlavə və yeni node ümumi məbləği təqdim etdik. 207 00:13:13,370 --> 00:13:15,310 Belə ki, indi biz bu prosesi təkrar. 208 00:13:15,310 --> 00:13:19,490 Iki kiçik qovşaqlarının tap və sonra yeni bir ağac onları qoşulmaq 209 00:13:19,490 --> 00:13:21,380 və sonra da prosesi təkrar. 210 00:13:21,380 --> 00:13:26,390 Hal-hazırda biz bir neçə namizəd, 20%, 15%, digər 20%-i var. 211 00:13:26,390 --> 00:13:29,780 Bu halda, biz tie qırmaq lazımdır. Biz bunu özbaşına edə bilərsiniz. 212 00:13:29,780 --> 00:13:31,540 Biz yalnız ardıcıl etməlidir. 213 00:13:31,540 --> 00:13:33,760 Bu halda, mən özbaşına, sol bir ilə gedəcəyəm 214 00:13:33,760 --> 00:13:39,880 və indi, mənə 35% adlanan yeni müəssisənin vermək 20% və 15% daxil 215 00:13:39,880 --> 00:13:46,310 kimin doğru uşaq 1 və indi meşə yalnız üç ağac var 0, onun sol uşaq. 216 00:13:46,310 --> 00:13:47,960 Siz bəlkə bu hara getdiyini görürük. 217 00:13:47,960 --> 00:13:51,150 Biz bu bir neçə dəfə təkrar edin, biz yalnız bir böyük ağac var olacaq 218 00:13:51,150 --> 00:13:53,900 onun kənarları 0s və 1s ilə etiketlenmiş bütün. 219 00:13:53,900 --> 00:13:55,710 Yenə bunu edək. 220 00:13:55,710 --> 00:14:02,600 35% ki, ağacın kökü. 20% və 45%, belə ki, biz 35% və 20% daxil olacaq. 221 00:14:02,600 --> 00:14:05,610 İndi biz burada bu ağac var. Biz birlikdə o əlavə biz 55% var. 222 00:14:05,610 --> 00:14:07,910 İndi meşə yalnız iki ağac var. 223 00:14:07,910 --> 00:14:11,900 Bu bir son vaxt və ümid edirəm riyazi bütün tezliklərin qədər əlavə edin 224 00:14:11,900 --> 00:14:15,570 onlar ildən biz onları hesablanır, çünki 100% əlavə almaq-gedin. 225 00:14:15,570 --> 00:14:17,960 İndi biz bir ağac var. 226 00:14:17,960 --> 00:14:20,580 Belə ki, bu Huffman coding ağac. 227 00:14:20,580 --> 00:14:24,400 Bu cür şifahi orada almaq üçün bir müddət etdi, amma reallıq loop üçün ilə 228 00:14:24,400 --> 00:14:27,620 və ya bir recursive funksiyası ilə, siz olduqca sürətli bu şey qurmaq bilər. 229 00:14:27,620 --> 00:14:32,440 Belə ki, indi biz yeni bir node var və bu daxili qovşaqlarının bütün malloc'd edilmişdir 230 00:14:32,440 --> 00:14:34,690 ehtimalla, yol boyunca. 231 00:14:34,690 --> 00:14:38,650 Biz bir yol var Belə ki, indi bu ağac üst biz 100% var, amma artıq qeyd 232 00:14:38,650 --> 00:14:43,780 Bu yeni böyük ulu grandparent olan böyük ulu nəvəsi bütün 233 00:14:43,780 --> 00:14:45,930 yarpaqları bütün altındakı bütün yolu. 234 00:14:45,930 --> 00:14:52,840 >> Biz indi nə olacaq, məktubda E təmsil etmək məqsədilə təklif edir 235 00:14:52,840 --> 00:14:55,670 biz sadəcə 1 saylı istifadə edəcək. Niyə? 236 00:14:55,670 --> 00:15:01,000 Biz E kimi tanınan yarpaq aşağı yekun kök Bu ağac axır əgər Çünki, 237 00:15:01,000 --> 00:15:06,050 biz bir kənarında, sağ kənar edin və sağ 1 əlbəttə etiketli ki. 238 00:15:06,050 --> 00:15:11,550 Belə Huffman üçün burada dolayısı ikili E kodlama yalnız 1 olmalıdır idi. 239 00:15:11,550 --> 00:15:14,490 Və olduqca lənətləmək səmərəli deyil. Həqiqətən daha kiçik almaq bilməz. 240 00:15:14,490 --> 00:15:18,350 Əksinə, A siz məntiqi edin əgər, təmsil edir 241 00:15:18,350 --> 00:15:21,610 əvəzinə bit nə model tərəfindən? 01. 242 00:15:21,610 --> 00:15:25,500 Belə ki, bir olmaq üçün, biz kök başlamaq və biz tərk getmək, sonra doğru getmək 243 00:15:25,500 --> 00:15:28,580 hansı bir 0 təqib və sonra 1 deməkdir. 244 00:15:28,580 --> 00:15:32,810 Beləliklə, biz bir model 0 və 1 ilə məktub təmsil edir. 245 00:15:32,810 --> 00:15:36,010 İndi biz artıq dərhal decodability bir xüsusiyyəti qeyd 246 00:15:36,010 --> 00:15:38,090 biz Morse kodu olmadığını. 247 00:15:38,090 --> 00:15:42,840 Bu nümunələri də olduqca qısa baxmayaraq - E 1 bit, A 2 bit deyil - 248 00:15:42,840 --> 00:15:45,080 onlar bir və ya bir başqa səhv ola bilməz ki, görürsünüz 249 00:15:45,080 --> 00:15:54,870 Bir 1 görmək əgər siz görürsünüzsə, E olmaq lazımdır, çünki bir 0 sonra açıq-aydın bir A. olmaq üçün var 1 250 00:15:54,870 --> 00:15:58,410 Eynilə, D var? 001. 251 00:15:58,410 --> 00:16:01,440 C nədir? 0001. 252 00:16:01,440 --> 00:16:05,320 Və B nədir? 0000. 253 00:16:05,320 --> 00:16:09,550 Və yenə biz qayğı məktublar bütün yarpaqları var, çünki 254 00:16:09,550 --> 00:16:13,890 və onlardan heç biri, kök yarpaq yolu middlemen növü var 255 00:16:13,890 --> 00:16:18,760 2 məktub "müxtəlif kodlamalar conflating heç bir risk var 256 00:16:18,760 --> 00:16:22,300 Bu bit nümunələri bütün deterministic çünki. 257 00:16:22,300 --> 00:16:25,280 0000 həmişə B. olacaq 258 00:16:25,280 --> 00:16:29,480 Siz digər bir məktub çaşdırmaq bilər ki, haradasa arasında heç bir node var. 259 00:16:29,480 --> 00:16:31,150 Belə ki, burada dolayısı nə var? 260 00:16:31,150 --> 00:16:35,080 >> Ən məşhur məktubu - bu halda E - qısa encoding əldə edib 261 00:16:35,080 --> 00:16:37,430 A, növbəti qısa encoding əldə edib 262 00:16:37,430 --> 00:16:41,390 biz ən məşhur almaq-getmək idi cür bilirdi olan və B, C, 263 00:16:41,390 --> 00:16:45,390 10% tezlik hər, onlar uzun encoding kazanılmış. 264 00:16:45,390 --> 00:16:49,410 Və nə bu artıq o deməkdir ki, siz sıxılmış olan bir mesaj göndərmək istəyirsinizsə, 265 00:16:49,410 --> 00:16:51,950 İnternet üzərində və ya bir e-poçt və ya analoji olaraq, 266 00:16:51,950 --> 00:16:56,730 çox standart ASCII istifadə daha bir Huffman kodlu mesaj göndərə bilərsiniz 267 00:16:56,730 --> 00:17:01,720 Siz məktubu E göndərmək istəyirsinizsə vasitəsi, yalnız bir bit göndərin. 268 00:17:01,720 --> 00:17:05,680 Bir A göndərmək istəyirsinizsə, siz 2 bit, 01, əvəzinə 8 bit göndərilməsi göndərmək 269 00:17:05,680 --> 00:17:10,190 s başqa 8 bit və sonra başqa 8 bit izlədi. 270 00:17:10,190 --> 00:17:11,940 Amma gotcha burada var. 271 00:17:11,940 --> 00:17:17,079 Bu yalnız Alice olan Bob göndərilməsi başlamaq sonra bu ağac tikintisi və kifayət qədər deyil 272 00:17:17,079 --> 00:17:20,010 qısa bit model, ASCII dən simli, 273 00:17:20,010 --> 00:17:23,140 Alice də nə Bob məlumatlandırmaq, çünki 274 00:17:23,140 --> 00:17:26,880 Bob onun sıxılmış oxumaq etmək üçün gedir? 275 00:17:26,880 --> 00:17:30,770 [Işitilemez tələbə cavab] >> ki, nə var? 276 00:17:30,770 --> 00:17:32,310 [Işitilemez tələbə cavab] ağac nə >>. 277 00:17:32,310 --> 00:17:35,160 Və ya daha dəqiq desək, bu kodlamalar nə, 278 00:17:35,160 --> 00:17:39,010 Bu hekayə ərzində biz bir nöqtəsində bir qərar zəng etmişdir xüsusilə ildən. 279 00:17:39,010 --> 00:17:43,640 Biz 2 müxtəlif 20% qovşaqlarının arasında özbaşına seçin ki saxla? 280 00:17:43,640 --> 00:17:49,800 Belə ki, Bob, alıcı, yalnız onun öz ağac yenidən qurulması bilər ki, işin deyil 281 00:17:49,800 --> 00:17:53,390 bəlkə o heç belə az fərqli Alice olan ağac yaratmaq olacaq. 282 00:17:53,390 --> 00:17:56,670 Bundan əlavə, Bob hətta orijinal mesajı nə deyil 283 00:17:56,670 --> 00:18:00,770 Alice ona göndərir tək şey, əlbəttə, sıxılmış mesaj çünki. 284 00:18:00,770 --> 00:18:05,900 >> Bu kimi sıxılma ilə catch ki, Belə ki, bəli, Alice bit bütün çox saxlaya bilərsiniz 285 00:18:05,900 --> 00:18:09,900 s A E 1 və 01 göndərilməsi və, 286 00:18:09,900 --> 00:18:15,180 lakin o da birdən məktubları və bit arasında nə Bob məlumat var 287 00:18:15,180 --> 00:18:19,620 biz ASCII kullanmıyorsanız onlar aydın yalnız ASCII artıq etibar bilməz. 288 00:18:19,620 --> 00:18:22,200 Belə ki, o da elə ona ağac göndərə bilərsiniz - 289 00:18:22,200 --> 00:18:26,600 kimi ikili məlumatın və ya bir şey kimi saxlamaq, onu yazmaq - 290 00:18:26,600 --> 00:18:30,280 və ya yalnız ona mappings göstərir ki, bir az istifadə etmək hesabatı, bir Excel fayl göndərə bilərsiniz. 291 00:18:30,280 --> 00:18:36,480 Belə ki, sıxılma səmərəliliyini həqiqətən tutur ki göndərilməsi etdiyiniz mesajlar 292 00:18:36,480 --> 00:18:40,230 , orta ən azı, olduqca böyük 293 00:18:40,230 --> 00:18:42,180 bir super qısa mesaj göndərmək istəyirsinizsə, çünki 294 00:18:42,180 --> 00:18:45,390 Siz yalnız mesaj BAD göndərmək istəyirsinizsə, ki, biz burada oxumaq olar bir söz olur 295 00:18:45,390 --> 00:18:49,550 B-A-D, yəqin ki, az bit istifadə etmək olacaq, 296 00:18:49,550 --> 00:18:53,130 siz də ağac nə Bob məlumat üçün ancaq tutmaq deyil 297 00:18:53,130 --> 00:18:57,530 və ya bu kodlamalar nə, yəqin ki, qənaət bütün üstün olacaq 298 00:18:57,530 --> 00:19:00,110 ilə başlamaq sıxılmış şeylər olan. 299 00:19:00,110 --> 00:19:02,210 Belə ki, həqiqətən cəhd əgər kompressor ki, işin ola bilər 300 00:19:02,210 --> 00:19:05,330 hətta zip və ya fayl formatları kimi bir şey ilə tanış ola bilər - 301 00:19:05,330 --> 00:19:07,780 olduqca kiçik faylları, hətta boş fayllar - 302 00:19:07,780 --> 00:19:10,930 bəzən bu faylları böyük və kiçik deyil əldə edə bilər. 303 00:19:10,930 --> 00:19:14,320 Lakin real ki, yalnız kiçik fayl ölçüləri üçün baş 304 00:19:14,320 --> 00:19:16,920 belə bir gigabyte fayl 2 gigabaytlık olmaq etmək niyyətində deyil; 305 00:19:16,920 --> 00:19:19,480 biz həqiqətən bayt və ya bir neçə kilobayttan söhbət edirik. 306 00:19:19,480 --> 00:19:22,330 >> Zip kimi bir sıra proqramları ki, həyata keçirilməsi üçün kifayət qədər ağıllı olur 307 00:19:22,330 --> 00:19:24,590 "Bu kompressor daha bit sərf olacaq." 308 00:19:24,590 --> 00:19:27,460 "Mənə bütün sizin üçün kompressor narahat edək." 309 00:19:27,460 --> 00:19:30,160 Belə ki, bu mətn format kompressor sonra yalnız bir yoludur. 310 00:19:30,160 --> 00:19:32,300 Biz C. bu kimi bir şey həyata bilər 311 00:19:32,300 --> 00:19:35,370 Məsələn, burada biz bu ağac bir node təmsil bilər necə 312 00:19:35,370 --> 00:19:39,320 biz rəmzi üçün char, tezlik üçün üzən dəyəri var 313 00:19:39,320 --> 00:19:42,250 və biz digər strukturları, 2 göstəricilər ilə gördüm kimi 314 00:19:42,250 --> 00:19:47,080 NULL ola bilər və ya olan sol uşaq, sağa 1-1, 315 00:19:47,080 --> 00:19:50,850 lakin əgər, bir sol uşaq və sağ uşaq aiddir. 316 00:19:50,850 --> 00:19:55,130 Belə ki, bu sonra Huffman coding və bu məlumat kompressor haqqında bilərsiniz ki, bir yol 317 00:19:55,130 --> 00:19:57,880 və bu, əlbəttə həyata keçirilməsi üçün ən asan biri 318 00:19:57,880 --> 00:20:00,830 keçən həftə data strukturları, demək, bu çərçivədə, 319 00:20:00,830 --> 00:20:03,250 daha inkişaf etmiş alqoritmlər mövcud olsa 320 00:20:03,250 --> 00:20:08,220 Sizin data daha təcrübəli mutasiyalar edə bilərsiniz. 321 00:20:08,220 --> 00:20:11,640 Hər ağac, ikili ağacları, və ya mətn sıxılma sonra suallar? 322 00:20:11,640 --> 00:20:15,590 [Tələbə] bəzi qeyri [işitilemez] split əgər kimi 01 dilinə, var, 323 00:20:15,590 --> 00:20:19,160 sonra 011 birmənalı sağ olardı? 324 00:20:19,160 --> 00:20:22,730 [Işitilemez] >> Yaxşı sual. Qeyri. 325 00:20:22,730 --> 00:20:25,940 Burada bu şəkil istinad mənə yekunlaşdırmaq edək. 326 00:20:25,940 --> 00:20:29,650 Çünki kompressor olunur simvol nümayəndələri, 327 00:20:29,650 --> 00:20:32,850 Bu alqoritm müəyyənləşdirilməsinin həmişə yarpaqları qalır 328 00:20:32,850 --> 00:20:41,870 siz təsadüfən bir çox məktublar prefiks üçün bit eyni model istifadə heç vaxt lazımdır. 329 00:20:41,870 --> 00:20:46,740 Belə ki, başqa sözlə, siz narahat edirik ki, yaranan bir qeyri kimi səslənir 330 00:20:46,740 --> 00:20:51,580 qovuşdurmağımız 001 B başlanğıc və ya C və ya kimi bir şey başlanğıc ola bilər. 331 00:20:51,580 --> 00:20:56,780 Amma bu əlifbasının hərflərinin bütün biz kodlama edirik ki bildiriş işi ola bilməz 332 00:20:56,780 --> 00:20:58,290 yarpaqları var. 333 00:20:58,290 --> 00:21:01,910 >> Bu qeyri-müəyyənlik yalnız Morse kodu olduğu kimi, yarana bilər 334 00:21:01,910 --> 00:21:06,770 əgər, məsələn, C kök B. yolu boyunca bir yerdə idi 335 00:21:06,770 --> 00:21:12,290 [Tələbə] Sağ. Belə ki, bu halda, A 2 yarpaqları var deyirlər. >> A var De - daha söyləyin. 336 00:21:12,290 --> 00:21:18,760 [Tələbə] A 2 yarpaq, F və G, və sonra G var De - >> OK. Amma bu mümkün deyil. 337 00:21:18,760 --> 00:21:23,230 A özü bu məktubları çünki yarpaqları F və G ola bilməz F və G 338 00:21:23,230 --> 00:21:27,560 özləri B sol və ya E. hüququna haradasa yarpağı olacaq 339 00:21:27,560 --> 00:21:28,900 Belə ki, definition, onlar yarpaqları olmalıdır. 340 00:21:28,900 --> 00:21:32,940 Əks halda, tam doğru danışırsınızsa, biz Morse kodu üzləşdiyi problem həll etdik. 341 00:21:32,940 --> 00:21:38,150 Sual Yaxşı. Digər suallar? Bütün hüquqlar. 342 00:21:38,150 --> 00:21:42,050 Biz enerji yaşadığınız həyata bit Bu anlayış, biz, həqiqətən, istifadə etdiyiniz bütün boyunca çevrilir 343 00:21:42,050 --> 00:21:44,200 bu 0s və 1s manipulyasiya gələndə. 344 00:21:44,200 --> 00:21:46,600 Biz erkən problem dəstdən birini bu barədə soruşdu: 345 00:21:46,600 --> 00:21:52,340 yəni, siz böyük kiçik və ya əksinə çevrilməsi barədə necə getmək yoxdur? 346 00:21:52,340 --> 00:21:55,460 Və ya, daha konkret, bu ilk psets biri xahiş 347 00:21:55,460 --> 00:22:01,090 neçə bit həqiqətən bir və ya əksinə kiçik bir dəyişdirmək üçün çevirmek var? 348 00:22:01,090 --> 00:22:05,580 Burada 65 və 97 ikili kimi baxmaq nə sürətli bir öyüd-nəsihət var. 349 00:22:05,580 --> 00:22:08,060 Və hətta əgər bu suala növ, sizin yaddaş solğun edib 350 00:22:08,060 --> 00:22:11,290 siz neçə bit Çevrilmiş lazımdır ki, burada yenə bilərsiniz 351 00:22:11,290 --> 00:22:15,810 kapital dəyişdirmək üçün bir kiçik üçün? Yalnız bir. 352 00:22:15,810 --> 00:22:19,650 >> Onlar yalnız bir yeri, sol üçüncü bit fərqlənir. 353 00:22:19,650 --> 00:22:24,240 A 010, az var Halbuki bir 011 var. 354 00:22:24,240 --> 00:22:26,250 Belə ki, elə-belə, biz yalnız ki, bit çevirmek lazımdır 355 00:22:26,250 --> 00:22:29,410 və biz sonra kapitallaşdırmaq və ya məktublar kiçik bilər. 356 00:22:29,410 --> 00:22:32,720 Biz həqiqətən istifadə edərək keçmiş bu etdik şərait əgər 357 00:22:32,720 --> 00:22:35,930 və məktub kapital A və kapital Z arasında əgər yoxlanılması, 358 00:22:35,930 --> 00:22:41,480 sonra A kimi çıxış - a + 26 və ya kimi bir şey. 359 00:22:41,480 --> 00:22:46,130 Siz yəqin ki, əlifbası hərflərinin üçün hesab dəyişiklik etdi. 360 00:22:46,130 --> 00:22:49,270 Amma biz yalnız bir bit nə flip bilər? 361 00:22:49,270 --> 00:22:59,080 Necə 01000001 və 01100001 kimi belə bit, 8 bit bir bayt yetmeyecek alaraq haqqında getmək olar? 362 00:22:59,080 --> 00:23:03,170 Siz bit bu nümunələri olsaydı, biz onlara yalnız bir dəyişən barədə necə getmək olar? 363 00:23:03,170 --> 00:23:07,610 Burada sarı bit bu digər model təqdim ne? 364 00:23:07,610 --> 00:23:13,420 Mən dəyişmək istədiyiniz bir bit istisna olmaqla bütün sarı sim 0s etsəniz 365 00:23:13,420 --> 00:23:17,900 və sonra mən bir bitwise operator kimi tanınan yeni operator təqdim - 366 00:23:17,900 --> 00:23:21,210 bu fərdi bit fəaliyyət mənada ki bitwise, 367 00:23:21,210 --> 00:23:25,360 deyil, bütün bayt və ya dörd bayt bütün bir dəfə haqqında. 368 00:23:25,360 --> 00:23:31,170 Sarı var Bu şaquli bar biz kapital nümayəndəliyinin A nə alsaq ki, 369 00:23:31,170 --> 00:23:37,060 və bit sarı ardıcıllıqla bitwise ya bu? 370 00:23:37,060 --> 00:23:41,300 Başqa sözlə, Not-ci Boolean ifadələr bizim müzakirə geri edirəm və sonra C. 371 00:23:41,300 --> 00:23:47,520 >> Bir Boolean Doing ya doğru o deməkdir ki, ya ilk şey doğru olmalıdır 372 00:23:47,520 --> 00:23:50,700 və ya, ikinci şey doğru və ya onların hər ikisi doğru olmalıdır 373 00:23:50,700 --> 00:23:53,270 və sonra yaranan çıxış əsl özü edir. 374 00:23:53,270 --> 00:24:00,230 Burada Bu halda, biz 0 ed nə 0 alsaq almaq "və ya" yoxdur? Saxta və ya yalan? 375 00:24:00,230 --> 00:24:04,280 Bu hələ yalan var ki, kiçik bir gözlənildiyi kimi qalır belə. 376 00:24:04,280 --> 00:24:07,540 Nə əvəzinə biz 1 və ya 0 əgər? 377 00:24:07,540 --> 00:24:12,640 Bu indi 1 qalır, lakin burada baş haqqında nə görürsünüz. 378 00:24:12,640 --> 00:24:18,630 Biz kapital A başlamaq və biz burada yapýyorsun kimi biz onun fərdi bit davam "və ya" varsa, 379 00:24:18,630 --> 00:24:25,180 0 və ya sarı bir nə aşağı burada bizə verir? Bu, bizim 1 verir. 380 00:24:25,180 --> 00:24:35,120 Əslində, biz kiçik və böyük versiyası həqiqətən nə bilmirdim güman edirlər. 381 00:24:35,120 --> 00:24:38,270 Bu nə getmək edək. Mənə burada bu geri hərəkət edək. 382 00:24:38,270 --> 00:24:42,340 Yenə bunu edək. 0 və ya 0 mənə 0 verir. 383 00:24:42,340 --> 00:24:45,020 1 və ya 0 mənə 1 verir. 384 00:24:45,020 --> 00:24:48,020 0 və ya 1 mənə 1 verir. 385 00:24:48,020 --> 00:24:52,880 0 və ya 0 mənə 0 verir. Növbəti bir 0 ki, növbəti bir 0 ki, növbəti bir 0-dir. 386 00:24:52,880 --> 00:24:55,660 1 və ya 0 mənə 1 verir. 387 00:24:55,660 --> 00:24:59,140 Biz əvvəlcədən bilmirdim, hətta əgər, belə bir idi kiçik nə 388 00:24:59,140 --> 00:25:04,770 sadəcə ing ilə "və ya" A biz sarı burada təqdim etdiyiniz bit bu model ilə 389 00:25:04,770 --> 00:25:09,400 Əgər bit Flipping tərəfindən kapital kiçik bilər. 390 00:25:09,400 --> 00:25:11,580 Biz ifadə həftə öncə bu istifadə: bir az Flipping. 391 00:25:11,580 --> 00:25:13,710 Həqiqətən, necə program etməliyəm? 392 00:25:13,710 --> 00:25:16,390 Siz ümumiyyətlə maskası bit bir ardıcıllıqla, deyirlər nə istifadə 393 00:25:16,390 --> 00:25:19,980 ki, bu halda yalnız, belə ki, burada bu rəqəm kimi baxmaq olur 394 00:25:19,980 --> 00:25:22,980 və sonra "və ya" birlikdə bu yeni C operator istifadə edərək, 395 00:25:22,980 --> 00:25:29,940 deyil | |, bir istifadə | və çünki nə həqiqətən burada bu cavab almaq olar? 396 00:25:29,940 --> 00:25:35,120 Bu 1s yeri, 2s yer, 8, 4s 16, 32s edir. 397 00:25:35,120 --> 00:25:42,280 Belə ki, bir paytaxt məktubu əgər A və tam 32 bitwise ya bu çıxır 398 00:25:42,280 --> 00:25:47,520 olan tam 32, çünki siz bit kimi baxdığımız zaman, bu kimi görünür 399 00:25:47,520 --> 00:25:50,860 siz həqiqətən istədiyiniz qədər flip bilər deməkdir. 400 00:25:50,860 --> 00:25:52,630 Və eyni - və biz yalnız bir anda kodu baxmaq lazımdır - 401 00:25:52,630 --> 00:25:54,210 biz digər istiqamətdə getmək istəyirəm güman edirlər. 402 00:25:54,210 --> 00:25:58,210 >> Siz kiçik bir kapital necə getmək yoxdur? Hansı bit dəyişdirmək lazımdır? 403 00:25:58,210 --> 00:25:59,820 Eyni biri. 404 00:25:59,820 --> 00:26:03,970 Biz 0, 1 ki, üçüncü bit dəyişdirmək istəyirik. 405 00:26:03,970 --> 00:26:06,310 Və biz bunu edə bilər? 406 00:26:06,310 --> 00:26:10,130 Necə bir az kapatabilirim? Bit nə model ilə biz bir az söndürmək olar? 407 00:26:11,580 --> 00:26:14,070 Biz maskası invert növ əgər? 408 00:26:14,070 --> 00:26:17,350 Əvvəl isə, biz bütün sarı maska ​​0s etdi 409 00:26:17,350 --> 00:26:19,930 bir az istisna olmaqla, biz yandırmaq istədi 410 00:26:19,930 --> 00:26:25,580 nə bu dəfə əgər, biz söndürmək istədiyiniz bit istisna olmaqla bütün maska ​​1s etmək 411 00:26:25,580 --> 00:26:28,330 və sonra nə operator istifadə? 412 00:26:28,330 --> 00:26:30,560 Biz "və" şey varsa? Bir nəzər salaq. 413 00:26:30,560 --> 00:26:34,880 İndi bu flip varsa, daha bütün 1s ki, maska ​​yaratmaq güman 414 00:26:34,880 --> 00:26:37,650 mən bağlamaq istəyirəm ki, bir az başqa 415 00:26:37,650 --> 00:26:43,860 və sonra daha çox "və ya" Burada sarı aşağı nömrələri ilə üst qədər ağ nömrələri, 416 00:26:43,860 --> 00:26:46,940 nə birlikdə mən əvəzinə "və" onlara əgər? Bu bitwise zəng edir. 417 00:26:46,940 --> 00:26:49,450 Məntiqi, bir Boolean eyni şey var və. 418 00:26:49,450 --> 00:26:55,160 Bu 0 & 1 0 mənə verir. Belə ki, yalan və doğru yalan. 419 00:26:55,160 --> 00:26:58,160 True və əsl həqiqətdir. 420 00:26:58,160 --> 00:27:04,020 Və burada sehrli: True və yalan artıq yalan deyil, belə ki, az söndürüldükdə etdik. 421 00:27:04,020 --> 00:27:06,560 İndi hekayə qalan qədər sadə deyil. 422 00:27:06,560 --> 00:27:11,970 Maskası qalan 1s Çünki, bu ədəd ağ nə əhəmiyyətli deyil. 423 00:27:11,970 --> 00:27:15,580 Siz "və" doğru bir şey, onun dəyəri dəyişmək fikrində deyilik zaman. 424 00:27:15,580 --> 00:27:20,200 Doğru deyil, bu, doğru olacaq. Bu yalan idi, bu, yalan olacaq. 425 00:27:20,200 --> 00:27:23,190 >> Əgər doğru idi ki, bir şey almaq Lakin sehrli olur 426 00:27:23,190 --> 00:27:25,430 saxta və sonra "və" bu. 427 00:27:25,430 --> 00:27:30,030 Bu bit off dönüş təsiri var. 428 00:27:30,030 --> 00:27:31,980 Orada belə bir az sirli. 429 00:27:31,980 --> 00:27:35,390 Həqiqətən daha sirli ola bilər, hansı nin əslində bir kodu baxaq, 430 00:27:35,390 --> 00:27:38,220 amma nin tolower burada bir nəzər salaq. 431 00:27:38,220 --> 00:27:45,880 Mən tolower baxsaq, A, bir kiçik kapital gedən 432 00:27:45,880 --> 00:27:47,730 biz bu proqramı həyata bilər necə edək. 433 00:27:47,730 --> 00:27:51,280 Burada əsas var, və hər hansı bir komanda-line arguments qəbul deyil. 434 00:27:51,280 --> 00:27:55,980 Mən istifadəçi kimi daxil yazın edir ki, məktub üçün xarakter c elan edirəm 435 00:27:55,980 --> 00:28:00,690 Loop yalnız istifadəçi mütləq A mənə kapital verir ki, əmin zamanı sonra tanış do istifadə 436 00:28:00,690 --> 00:28:05,010 və ya B və ya C. .. Z, onlar mənə A və Z. arasında bir şey vermək 437 00:28:05,010 --> 00:28:08,580 İndi burada nə edirəm? 438 00:28:08,580 --> 00:28:14,870 Ben "və ya" 0x20 ilə ing bu, ancaq faktiki olaraq eyni - 439 00:28:14,870 --> 00:28:19,500 və biz bir anda bu qayıda bilərsiniz - 32. 440 00:28:19,500 --> 00:28:24,830 Belə ki, yenə, 32 burada bit bu nümunəsidir. Niyə biz bu bilirik? 441 00:28:24,830 --> 00:28:26,320 Just həftə 0 geri edirəm. 442 00:28:26,320 --> 00:28:31,010 Bu 1s yeri, 2s yeri, 4s, 8, 16, 32s yerdir. 443 00:28:31,010 --> 00:28:33,470 Belə ki, bu sarı sayı 32 olur. 444 00:28:33,470 --> 00:28:40,570 Mən, sözün sayı 32, burada bitwise "və ya" bu char kimi bir məktub ala bilər 445 00:28:40,570 --> 00:28:45,250 və nə geri alıram? Ki, char ən kiçik versiyası. 446 00:28:45,250 --> 00:28:48,830 Bir an əvvəl, baxmayaraq ki, mən müxtəlif baza notation bu bildirdi. 447 00:28:48,830 --> 00:28:51,370 Bu nə təmsil idi? >> [Tələbə] hexadecimal. 448 00:28:51,370 --> 00:28:53,050 [Malan] Bu hexadecimal təmsil olur. 449 00:28:53,050 --> 00:28:55,170 Biz bütün çox hexadecimal danışdı deyil 450 00:28:55,170 --> 00:28:57,330 lakin bu kimi hallarda həqiqətən rahat edir. 451 00:28:57,330 --> 00:29:01,730 >> Daha mürəkkəb görünür və olsa da, 20 və 32, kimi görünür baxmayaraq 452 00:29:01,730 --> 00:29:06,240 bu hexadecimal həqiqətən super rahat notation edir çıxır ki, 453 00:29:06,240 --> 00:29:10,810 hexadecimal ildə hər 0x sonra rəqəmli çünki - və bu heç bir şey deməkdir; 454 00:29:10,810 --> 00:29:13,960 burada bir hexadecimal sayı gəlir deyir ki, yalnız insan konvensiya deyil - 455 00:29:13,960 --> 00:29:18,590 Bu rəqəm hər, 2 və sonra 0, özlərini təmsil edə bilər 456 00:29:18,590 --> 00:29:20,800 tam 4 bit ilə. 457 00:29:20,800 --> 00:29:27,840 Bunu Belə ki, mənə burada bir mətn redaktoru açmaq qoy - qəribə AutoComplete - 458 00:29:27,840 --> 00:29:35,940 biz burada bir az mətn redaktoru əgər, sayı 0x20 4 bits burada deməkdir, burada başqa 4 bit var. 459 00:29:35,940 --> 00:29:38,050 Ilk rightmost 4 bits nə edək. 460 00:29:38,050 --> 00:29:44,690 4 bit ilə təmsil zaman 0 nədir? Super asan. Məhz bütün 0s. 461 00:29:44,690 --> 00:29:46,780 Belə 0s 4 bit. 462 00:29:46,780 --> 00:29:53,510 Necə 2 təmsil edirsiniz? Biz bunu ildən isə idi, lakin 0100-nin oldu. 463 00:29:53,510 --> 00:29:57,310 Bu 1s yer Belə ki, bu 2s yer, və sonra başqa yerlərdə nə əhəmiyyətli deyil. 464 00:29:57,310 --> 00:30:00,610 Başqa sözlə, hexadecimal, siz, 0x20 deyə bilər 465 00:30:00,610 --> 00:30:04,340 lakin sonra 2-nə haqqında düşünmək və necə ikili təmsil olunduğu halda, 466 00:30:04,340 --> 00:30:07,130 nə 0 və necə ikili təmsil olunur, 467 00:30:07,130 --> 00:30:10,440 bu suallara cavab olaraq, bu və bu var. 468 00:30:10,440 --> 00:30:14,380 Belə ki, 0x20, 8 bit bu model təmsil olur 469 00:30:14,380 --> 00:30:16,880 hansı dəqiq biz istəyirdik ki, maska ​​edir. 470 00:30:16,880 --> 00:30:20,140 Belə ki, bu an üçün yalnız bir intellektual həyata edir 471 00:30:20,140 --> 00:30:24,520 amma reallıq kodu bu kimi sabitləri yazmaq üçün adətən daha çox ümumi edir 472 00:30:24,520 --> 00:30:28,360 hexadecimal sonra proqramçı bilərsiniz nisbətən asanlıqla, çünki 473 00:30:28,360 --> 00:30:32,560 bəzi kağız və qələm tələb olsa da, bit ki, model nə anlamaq 474 00:30:32,560 --> 00:30:35,960 yalnız kodu adətən 0s və 1s ifadə bilməz. 475 00:30:35,960 --> 00:30:38,540 Siz 00010 getmək və s bilməz. 476 00:30:38,540 --> 00:30:42,380 >> Siz decimal ya hexadecimal və ya octal və ya digər notlari seçin var. 477 00:30:42,380 --> 00:30:47,540 Çoxu sadəcə hər rəqəmli 4 bits təmsil hexadecimal seçin edirlər 478 00:30:47,540 --> 00:30:49,320 və bu sürətli math edə bilərsiniz. 479 00:30:49,320 --> 00:30:54,990 Mən demək olar ki, eyni olan toupper, mənim əl dalğa bilərsiniz demək olar ki, eyni görünür. 480 00:30:54,990 --> 00:31:01,900 Toupper deyil və ya operator deyil, bu oğlan və df istifadə olur. 481 00:31:01,900 --> 00:31:09,300 Df nə təmsil edir? df? Hər kəs? >> [Tələbə] 255. 482 00:31:09,300 --> 00:31:12,780 255? Deyil 255. Bu ff olardı. 483 00:31:12,780 --> 00:31:15,210 Biz bir az həyata kimi bu tərk edəcəyik. 484 00:31:15,210 --> 00:31:23,460 Siz 0-dan getmək Lakin əgər, sonra 1, 2, 3, 4, 5, 6, 7, 8, 9 və nə 9 sonra gəlir? 485 00:31:23,460 --> 00:31:26,510 Biz decimal rəqəm həyata cür istəyirik, ancaq hexadecimal nə 9 sonra gəlir? 486 00:31:26,510 --> 00:31:29,510 [Tələbə] a. >> Beləliklə a, b, c, d. 487 00:31:29,510 --> 00:31:33,470 Siz d həqiqətən təmsil bit nə model həyata rəqəm bilər. 488 00:31:33,470 --> 00:31:38,850 Biz riyaziyyat nə varsa, biz sizə geri alınması başa maskası bu eyni olduğunu görəcəksiniz. 489 00:31:38,850 --> 00:31:45,580 Bu f, bütün 1s və bu d edir. Belə df ki, maska ​​təmsil edir. Bütün hüquqlar. 490 00:31:45,580 --> 00:31:50,980 Və nəhayət, hər şeyi səs super, super texniki, etmək deyil 491 00:31:50,980 --> 00:31:53,840 lakin biz bunu bir proqram yazmaq istədim güman edirlər. 492 00:31:53,840 --> 00:31:58,960 Mənə davam və binary.c adlı fayl bir proqram olan ikili, etmək edək. 493 00:31:58,960 --> 00:32:02,050 İndi mənə ikili run və mənə qeyri-mənfi tam verək. 494 00:32:02,050 --> 00:32:03,960 Gəlin 0 asan və növü başlayın. 495 00:32:03,960 --> 00:32:09,010 Bu indi onun ikili təmsil bir tam həyata yazdıran bir proqramdır. 496 00:32:09,010 --> 00:32:13,470 Mən bu oyunu oynamaq və yalnız 1 yazın Belə ki, mən 1-32-bit təmsil lazımdır. 497 00:32:13,470 --> 00:32:15,490 I 2 ilə yenidən bu halda, mən almaq lazımdır. 498 00:32:15,490 --> 00:32:19,310 Mən 7 varsa, mən s sonunda bir neçə 1s almaq və olmalıdır. 499 00:32:19,310 --> 00:32:22,740 Çünki bitwise əməliyyatları ilə bu qeyd həyata çevirir 500 00:32:22,740 --> 00:32:25,490 həqiqətən, həmçinin başqa bir şey edə bilərsiniz. 501 00:32:25,490 --> 00:32:29,130 Siz dinamik Bu maska ​​yarada bilərsiniz. 502 00:32:29,130 --> 00:32:32,800 Bitwise əməliyyatları olan bu bir final Məsələn bir göz atın. 503 00:32:32,800 --> 00:32:35,490 Burada kodu ilk hissəsi, bir çox istifadəçi təklif 504 00:32:35,490 --> 00:32:38,130 və siz məni bir qeyri-mənfi tam verir ki, təkid. 505 00:32:38,130 --> 00:32:39,780 Belə ki, köhnə məktəb heyəti növ var. 506 00:32:39,780 --> 00:32:41,980 Amma burada maraqlı cür ki, bir şey. 507 00:32:41,980 --> 00:32:44,910 >> Mən ikili bir sıra çap edə bilərəm? 508 00:32:44,910 --> 00:32:48,970 Mən ilk nə nə təkrarlamaq? 509 00:32:48,970 --> 00:32:52,270 Ən azı cihaz da, adətən, bir int həcmi nedir? >> [Tələbə] 4. 510 00:32:52,270 --> 00:32:57,130 4 deyil. Belə ki, 4 * 8 32 - 1 31. 511 00:32:57,130 --> 00:33:02,590 Mən 31-dən saymaq başlayan alıram Beləliklə, əgər ki, olur, təmsil 512 00:33:02,590 --> 00:33:07,630 yalnız konseptual, buraya bu oğlan olan 31 bit və ya yüksək üçün bit, 513 00:33:07,630 --> 00:33:09,650 Bu bit 0 olacaq halbuki. 514 00:33:09,650 --> 00:33:12,850 Beləliklə, bu bit 01 bit deyil ... 31. 515 00:33:12,850 --> 00:33:14,950 Belə ki, bu kodu nə edir? 516 00:33:14,950 --> 00:33:20,140 Bu sirli görünür baxmayaraq, yalnız aşağı 31 0 iterating olunur, loop üçün bildirək. Vəssalam. 517 00:33:20,140 --> 00:33:24,530 Belə ki, maraqlı hissəsi indi burada bu 5 xətt olmalıdır. 518 00:33:24,530 --> 00:33:28,110 Bu istiqamətdə bir dəyişən adlı maska ​​bəyan edirəm edək ki, 519 00:33:28,110 --> 00:33:30,790 Bu sarı ədəd bizim hekayə uyğun olmalıdır. 520 00:33:30,790 --> 00:33:32,200 Və bu nə edir? 521 00:33:32,200 --> 00:33:35,720 Bu, əvvəl çox güman görmədim sonra başqa bitwise operatorudur. 522 00:33:35,720 --> 00:33:38,300 Bu sol shift operator var. 523 00:33:38,300 --> 00:33:40,060 Bu operator bu yoxdur. 524 00:33:40,060 --> 00:33:44,920 Burada 1 nömrəli, və əgər i shift, sol shift sol 525 00:33:44,920 --> 00:33:49,260 Əgər fərdi 1 etdiyini təsiri var ki, nə düşünürsünüz? 526 00:33:49,260 --> 00:33:51,290 Sanki artıq dəyişir. 527 00:33:51,290 --> 00:33:57,540 Sayı 1 sol var nə və 31-i başlatılıyor ilə başlamaq əgər 528 00:33:57,540 --> 00:34:03,490 ki, nə olacaq? Bu sayı 1 almaq və burada 31 yerlərdən keçmək olacaq. 529 00:34:03,490 --> 00:34:06,210 Və bunun arxasında açıq-aydın başqa heç bir rəqəm var, çünki 530 00:34:06,210 --> 00:34:10,350 o ismarıcları 0s ilə əvəz olunacaq. 531 00:34:10,350 --> 00:34:15,120 Belə ki, əlbəttə, bu kimi görünür hansı sayı 1, həyata başlamaq lazımdır - 532 00:34:15,120 --> 00:34:18,659 və mənə mərkəzində burada artıq cəlb edək. 533 00:34:18,659 --> 00:34:22,139 Siz sol şeyi keçmək kimi, sonra bu oğlan mahiyyətcə bu yolla gedir. 534 00:34:22,139 --> 00:34:24,659 Amma tezliklə Bunu kimi, 0 doldurulması olur 535 00:34:24,659 --> 00:34:28,360 Siz onu ikinci dəfə keçmək varsa, bu yol gedir və başqa 0 doldurulması olur 536 00:34:28,360 --> 00:34:31,000 >> Siz daha keçmək və sonra başqa bir 0 doldurulması olur 537 00:34:31,000 --> 00:34:37,900 Siz 1 << i 31 yerlərdən bu şey Belə ki, bir maska ​​əldə sona 538 00:34:37,900 --> 00:34:42,550 ki, uzun bir 1 olduğu leftmost bir 32 karakterden 539 00:34:42,550 --> 00:34:45,199 qalan bütün bir 0 yerləşirsiniz. 540 00:34:45,199 --> 00:34:50,880 Və bu kimi sola bir sıra keçid, bir kənara kimi, çıxır 541 00:34:50,880 --> 00:34:53,530 də təsadüfən, bəzən rahat, 542 00:34:53,530 --> 00:34:57,520 ki sayı nə təsiri var? >> [Tələbə] bu katlama. 543 00:34:57,520 --> 00:35:00,980 Bu katlama çünki sütun hər bir - Bu 1s yeri, 2s yeri, 4s yeri, 544 00:35:00,980 --> 00:35:05,030 8 yer, 16 yer - Siz sol getmək kimi bütün misli they're. 545 00:35:05,030 --> 00:35:09,500 Daha doğrusu, siz 1s keçmək zaman sayını dəyəri misli qədər olacaq. 546 00:35:09,500 --> 00:35:12,070 Siz rəqəm maraqlı dəyişikliklər etdiyini başa bilər 547 00:35:12,070 --> 00:35:15,640 2 səlahiyyətləri bu şəkildə hər şey üzərində keçid ilə. 548 00:35:15,640 --> 00:35:17,150 Belə ki, necə bu iş? 549 00:35:17,150 --> 00:35:22,580 Bu, sonra mənə istədiyiniz dəqiq yerdə 1 olmaqla bütün 0s ki, maska ​​verir 550 00:35:22,580 --> 00:35:27,920 toupper.c oğurlanmış olan və bu ifadə, 551 00:35:27,920 --> 00:35:31,770 sadəcə istifadəçi yazdığınız n sayı almaq deyib, 552 00:35:31,770 --> 00:35:34,730 "Və" bu maska ​​ilə, və nə üçün gedir? 553 00:35:34,730 --> 00:35:39,200 Siz maskalı yeri bir 1 olduqda 1 almaq olacaq, 554 00:35:39,200 --> 00:35:41,570 ya yoxdur, əgər 0 almaq olacaq. 555 00:35:41,570 --> 00:35:44,370 Və bütün bu proqram səmərəli, bir loop var deyil 556 00:35:44,370 --> 00:35:48,340 və o, burada bir 1, sonra buraya, sonra burada 1 ilə 1 maska ​​yaradır 557 00:35:48,340 --> 00:35:52,950 və burada istifadəçi daxil a 1 bit var demək üçün bu bitwise VƏ oyun istifadə edir? 558 00:35:52,950 --> 00:35:59,220 >> Burada istifadəçinin daxil 1 bit var? Və əgər, sözün 0 çap başqa, 1 çap. 559 00:35:59,220 --> 00:36:03,780 Yerine 8-32 bit edirik səbəbdən yalnız, çünki ints Bu edirik 560 00:36:03,780 --> 00:36:06,900 lakin biz sonra təqdim etdik bu bitwise VƏ, bu bitwise OR, deyil 561 00:36:06,900 --> 00:36:10,450 tez-tez olduqca faydalı olmayan və bu sol shift operator, 562 00:36:10,450 --> 00:36:12,230 onlar ola bilər həyata lakin bu çevrilir. 563 00:36:12,230 --> 00:36:16,560 Əslində, əgər Booleans bir sıra kimi bir şey təmsil idi 564 00:36:16,560 --> 00:36:21,260 yalnız doğru və ya yalan təmsil etmək üçün, və ya track saxlamaq istəyirdi Güman 565 00:36:21,260 --> 00:36:24,630 300 tələbə tam bir oda, mövcud 566 00:36:24,630 --> 00:36:29,420 siz 300 bools almaq, belə ki, bool tipli həcmi 300 bir sıra bəyan edə bilər 567 00:36:29,420 --> 00:36:33,090 kimsə burada yalan başqa varsa, və siz doğru hər bir bilərsiniz. 568 00:36:33,090 --> 00:36:37,550 Niyə data structure ki, təmsil səmərəsiz edir? 569 00:36:39,370 --> 00:36:44,800 Nə data strukturu, 300 bools bir sıra layihə haqqında pis? 570 00:36:46,190 --> 00:36:49,600 Başlıq altında, əslində, bir bool nədir? 571 00:36:49,600 --> 00:36:52,310 Bu da tanış ola bilər bir şeydir. 572 00:36:52,310 --> 00:36:53,720 Heç bir bool var həyata çevirir. 573 00:36:53,720 --> 00:36:56,620 Biz növ yaradılmış saxla ki cs50.h fayl ilə, 574 00:36:56,620 --> 00:36:58,630 olan özü standart bool daxildir. 575 00:36:58,630 --> 00:37:00,930 Bu bool gəldikdə C, baxmayaraq ki, mehriban lal edir. 576 00:37:00,930 --> 00:37:04,880 Bu, hər bool təmsil 8 bit istifadə edir, hansı tamamilə israfçı edir 577 00:37:04,880 --> 00:37:09,040 Aydındır ki, siz bir bool təmsil neçə bit lazımdır çünki? Yalnız 1. 578 00:37:09,040 --> 00:37:13,190 Belə ki, həyata çevirir ki, indi bitwise operatorları ilə qabiliyyəti varsa, 579 00:37:13,190 --> 00:37:17,760 hətta bir byte hətta char fərdi bit manipulyasiya, 580 00:37:17,760 --> 00:37:21,380 Əgər axmaq bir şey təmsil tələb olunan yaddaş azaltmaq bilər həyata çevrilir 581 00:37:21,380 --> 00:37:25,490 8 amil tərəfindən daxil olmayıb səpkili data strukturu kimi. 582 00:37:25,490 --> 00:37:29,820 Əvəzində doğru və ya yalan təmsil səkkiz bit istifadə, siz sözün bir istifadə edə bilər 583 00:37:29,820 --> 00:37:34,500 sinfində hər səkkiz tələbələr üçün bir byte istifadə 584 00:37:34,500 --> 00:37:41,990 və aşağı səviyyəli tövsiyələr bu cür istifadə edərək 0 1 fərdi bit-dən toggling. 585 00:37:43,850 --> 00:37:49,460 Bu, həqiqətən, enerji son qoydu. Bitwise əməliyyatları haqqında suallarınız var mı? 586 00:37:49,460 --> 00:37:52,710 >> Bəli. >> [Tələbə] orada xüsusi və ya operator mı? 587 00:37:52,710 --> 00:37:56,440 Bəli. Bu kimi görünür ki, xüsusi və ya operator, ^, kök simvol var 588 00:37:56,440 --> 00:38:02,070 yalnız ilk şey və ya ikinci şey 1 olmaq çıxış üçün 1 ola bilər deməkdir. 589 00:38:02,070 --> 00:38:07,750 Siz həmçinin 1 və ya əksinə bir 0 ters imkan verəcək ~, var da bir deyil. 590 00:38:07,750 --> 00:38:11,600 Və biz gördüm bir əks olan sağ shift operator, >> də var. 591 00:38:11,600 --> 00:38:13,850 Bütün hüquqlar. Üzrə yüksək səviyyədə artıq şeylər edək. 592 00:38:13,850 --> 00:38:16,770 Biz mətn söhbət tərəfindən açılmış və o, kompressor 593 00:38:16,770 --> 00:38:19,650 və bit az nömrələri ilə mətn təmsil olunması; 594 00:38:19,650 --> 00:38:22,890 biz indi bitwise səviyyədə şeyi manipulyasiya başlaya bilərsiniz haqqında bir az danışdıq. 595 00:38:22,890 --> 00:38:26,640 Gəlin indi təmsil qədər 10,000 fut geri zoom 596 00:38:26,640 --> 00:38:29,250 qrafik kimi daha mürəkkəb şeyi. 597 00:38:29,250 --> 00:38:32,950 Burada Almaniya bir bayrağı vardır, biz burada Fransa biri var. 598 00:38:32,950 --> 00:38:36,350 Məsələn gifs - Bu Bildiyiniz fayl formatları təmsil bilər. 599 00:38:36,350 --> 00:38:40,030 Heç. Gif başa ki, Web bir şəkil gördüm varsa, 600 00:38:40,030 --> 00:38:43,000 Bu qrafik mübadiləsi format edir. 601 00:38:43,000 --> 00:38:47,530 Növ burada Bu iki bayraqları sıxılma özlərini borc 602 00:38:47,530 --> 00:38:52,050 bəlkə Aşkar nə səbəbdən? >> [Işitilemez tələbə cavab] 603 00:38:52,050 --> 00:38:53,440 Təkrar bir çox hüququ var? 604 00:38:53,440 --> 00:38:57,270 Almaniya bayrağı göndərmək üçün, ekranda bir şəkil kimi bu hesab 605 00:38:57,270 --> 00:38:59,030 Sizin Not gün geri. 606 00:38:59,030 --> 00:39:02,380 Siz bir şəkil tərtib ki, fərdi piksel və ya nöqtələr olduğunu xatırlayıram bilər. 607 00:39:02,380 --> 00:39:06,650 >> Qara nöqtələr və qara nöqtələr başqa bütün cərgə bütün sıra var. 608 00:39:06,650 --> 00:39:10,110 Biz, həqiqətən də zoomed əgər biz görürük ki, qara nöqtələr sıralarında bir dəstə var 609 00:39:10,110 --> 00:39:13,370 biz Photoshop Rob üzünü üzrə zoomed zaman çox istəyirəm. 610 00:39:13,370 --> 00:39:15,500 Biz daha dərin və şəkil daxil dərin və daha dərin var, kimi 611 00:39:15,500 --> 00:39:19,990 siz bu halda onun göz ibarətdir ki, meydanların bütün bu pixelation görən başladı. 612 00:39:19,990 --> 00:39:24,130 Burada eyni iş. Biz kifayət qədər bit zoomed, siz fərdi nöqtələr görmək olardı. 613 00:39:24,130 --> 00:39:27,110 Bəli, bu bit bir tullantıların növüdür. 614 00:39:27,110 --> 00:39:32,120 Bayrağı üçüncü bir qara və bayrağı üçüncü sarı və s varsa, 615 00:39:32,120 --> 00:39:34,860 niyə biz elə bu bayraq kompres edə bilər? 616 00:39:34,860 --> 00:39:39,560 Model bir az fərqli olsa və hətta Fransa bayrağı sıxılmış bilər. 617 00:39:39,560 --> 00:39:44,120 Bu, GIF formatında bir itkisiz sıxılma formatı edir çıxır 618 00:39:44,120 --> 00:39:48,420 siz burada alman bayrağı kimi bir şəkil bilər deməkdir 619 00:39:48,420 --> 00:39:53,540 siz keyfiyyət ödün olmadan onun bit bir çox tullamaq olar. 620 00:39:53,540 --> 00:39:55,340 Bu, JPEGs kimi bir şey fərqli edir 621 00:39:55,340 --> 00:39:57,050 Bizi ən çox yəqin ki, daha çox tanış olan. 622 00:39:57,050 --> 00:39:59,000 Facebook şəkillər və Flickr photos və kimi 623 00:39:59,000 --> 00:40:02,200 onlar qəbul etdiyiniz zaman demək olar ki, həmişə JPEGs kimi qeyd olunur, 624 00:40:02,200 --> 00:40:08,100 kayıplı - - Siz bit tullamaq etməyin vasitəsi format lakin JPEGs bir kayıplı edir 625 00:40:08,100 --> 00:40:10,430 lakin siz də keyfiyyət tullamaq. 626 00:40:10,430 --> 00:40:13,890 Və belə Photoshop ilə photos kompres və ya Facebook onları bərpa əgər 627 00:40:13,890 --> 00:40:15,580 və ya, həqiqətən, pis gündə telefon onları almaq 628 00:40:15,580 --> 00:40:19,510 Siz şəkil çox splotchy və pixelated almaq başlayır bilirik ki, 629 00:40:19,510 --> 00:40:22,290 bu kompüter və ya telefon ilə sıxılmış olunur, çünki və ki 630 00:40:22,290 --> 00:40:24,550 ilə sanki üz məlumat atma. 631 00:40:24,550 --> 00:40:28,500 Amma GIF bu ismarıcları bilər daha az bit istifadə edə bilərsiniz ki, gözəl 632 00:40:28,500 --> 00:40:30,750 hər hansı bir məlumat itirmədən. 633 00:40:30,750 --> 00:40:32,410 >> Və əsasən aşağıdakı kimi belə yoxdur. 634 00:40:32,410 --> 00:40:38,740 Əksinə bir BMP kimi bir fayl mağaza çox qara, qara, qara, qara üçün RGB üçqat ki, 635 00:40:38,740 --> 00:40:42,570 qara, qara, qara, qara, qara, qara, qara və s, 636 00:40:42,570 --> 00:40:45,640 Əksinə, GIF formatında, "Qara", deyə davam edir 637 00:40:45,640 --> 00:40:48,330 və sonra, "bu 100 dəfə təkrarlayın" və ya kimi bir şey. 638 00:40:48,330 --> 00:40:52,280 "Qara deyil, bu 100 dəfə deyirəm, qara Bu 100 dəfə təkrar ..." 639 00:40:52,280 --> 00:40:54,530 "Sarı, bu 100 dəfə təkrar edin." 640 00:40:54,530 --> 00:40:57,200 Və bu leftmost pixel, mahiyyətcə, xatırlayır 641 00:40:57,200 --> 00:41:02,160 və sonra birtəhər təkrar ki, pixel təkrar anlayışı kodlar. 642 00:41:02,160 --> 00:41:06,110 Belə gifs sonra hər hansı bir məlumat itirmədən özləri kompres bilər. 643 00:41:06,110 --> 00:41:09,510 Amma siz istifadə gifs ki, alqoritm, əgər tahmin olsaydı, 644 00:41:09,510 --> 00:41:13,180 onlar ölçüsü eyni baxmaq baxmayaraq bu bayraqları olan, 645 00:41:13,180 --> 00:41:19,620 bir GIF kimi disk saxlanan zaman kiçik olacaq? >> [Tələbə] Almaniya. 646 00:41:19,620 --> 00:41:21,660 Almaniya kiçik olacaq? Niyə? 647 00:41:21,660 --> 00:41:26,620 [Tələbə] Siz təkrar Çünki bir çox dəfə yatay 648 00:41:26,620 --> 00:41:29,010 və sonra bir dəfə təkrar edin. Məhz >>. 649 00:41:29,010 --> 00:41:32,020 GIF icad edən insanlar yalnız cür özbaşına qərar Çünki 650 00:41:32,020 --> 00:41:36,040 təkrar yatay və yan leveraged olunacaq. 651 00:41:36,040 --> 00:41:40,900 Fransız bayrağı çox alman bayrağı yana burada daha çox təkrar var. 652 00:41:40,900 --> 00:41:44,430 Biz, həqiqətən, bu gifs var ki, sabit bir qovluq açmaq əgər, 653 00:41:44,430 --> 00:41:51,920 həqiqətən burada Almaniya bayrağı 2 kilobayt və Fransız bir 4 kilobayttan olduğunu görə bilərsiniz. 654 00:41:51,920 --> 00:41:54,080 O, bir-iki dəfə başqa bir təsadüf ola olur 655 00:41:54,080 --> 00:41:57,960 lakin əslində Fransız bayrağı daha böyük olduğu halda var. 656 00:41:57,960 --> 00:42:01,250 >> Biz qrafik haqqında burada söhbət edirik baxmayaraq, eyni ideyalar müraciət edə bilər 657 00:42:01,250 --> 00:42:05,150 bir az daha kompleks olduğunu bayraqları lakin images kimi deyil şeylər. 658 00:42:05,150 --> 00:42:08,170 Bir alma bir şəkil alsaq, şübhəsiz ki, təkrarlanması bir çox orada var 659 00:42:08,170 --> 00:42:11,040 belə ki, biz birtəhər default fonunda mavi olduğunu unutmayın bilər 660 00:42:11,040 --> 00:42:13,230 və sağ şəkil, təklif kimi 661 00:42:13,230 --> 00:42:16,830 Bu şəkil hər pixel rəngini yadda var. 662 00:42:16,830 --> 00:42:21,060 Beləliklə, biz məlumat itirmədən oraya bit atmaq olar. 663 00:42:21,060 --> 00:42:23,340 Apple yenə də yalnız həmin görünür. 664 00:42:23,340 --> 00:42:27,510 Burada Məsələn, bir film nə görə bilərsiniz. 665 00:42:27,510 --> 00:42:31,970 Bu köhnə məktəb film makaraları vasitəsi orada üst image təmsil 666 00:42:31,970 --> 00:42:36,900 bir ev, son bir RV sürücülük və bir ağac var. 667 00:42:36,900 --> 00:42:42,130 Ki van soldan sağa keçmiş sürücüler kimi, nə açıq-aydın dəyişən deyil? 668 00:42:42,130 --> 00:42:45,320 Ev yerdə niyyətində deyil və ağac yerdə niyyətində deyil. 669 00:42:45,320 --> 00:42:47,700 Hərəkət ki, yalnız bu halda van edir. 670 00:42:47,700 --> 00:42:51,650 Dəyişməz Background təklif etdiyim kimi, siz kino nə edə 671 00:42:51,650 --> 00:42:56,530 eyni yalnız çərçivələri arasında dəyişmir məlumat tullamaq edir. 672 00:42:56,530 --> 00:42:58,900 Bu adətən interframe sıxılma kimi tanınır 673 00:42:58,900 --> 00:43:02,120 elə bu çərçivəsində bu demək olar ki, eyni görünür, əgər 674 00:43:02,120 --> 00:43:05,390 Gəlin disk haqqında eyni məlumat hər hansı saxlanılması narahat deyil 675 00:43:05,390 --> 00:43:09,250 Bu aralıq çərçivəsində də, yalnız bir müddət bir əsas çərçivəsində istifadə edək 676 00:43:09,250 --> 00:43:13,420 əslində bir az ağlı başında olma kontrol redundantly kimi məlumat saxlamaq. 677 00:43:13,420 --> 00:43:18,620 >> Əksinə, kompressor video üçün başqa bir yanaşma, burada bu ikinci və aşağı Məsələn edir 678 00:43:18,620 --> 00:43:23,970 çox mağaza daha 30 kare, niyə yalnız əvəzinə 15 çərçivəsində ikinci saxlamayın harada? 679 00:43:23,970 --> 00:43:27,070 Əksinə gözəl, mükəmməl axan film cür çox, 680 00:43:27,070 --> 00:43:30,060 bir az bir az köhnə məktəb, kekemelik edir kimi görünə bilər 681 00:43:30,060 --> 00:43:37,190 lakin xalis təsiri başqa zəruri ola bilər çox daha az bit istifadə etmək olacaq. 682 00:43:37,190 --> 00:43:39,240 Belə ki, bu sonra bizi tərk edir? 683 00:43:39,240 --> 00:43:41,700 Bu, sıxılma ilə getmək bilər başqa bir kənara bir az idi. 684 00:43:41,700 --> 00:43:45,140 Ki, daha çox üçün, burada CS175 kimi bir sinif edir. 685 00:43:45,140 --> 00:43:46,990 Burada video başqa bir misal var. 686 00:43:46,990 --> 00:43:49,190 Arı hərəkət yalnız bir şey varsa, 687 00:43:49,190 --> 00:43:51,790 həqiqətən o orta çərçivəsində informasiya tullamaq olar 688 00:43:51,790 --> 00:43:55,260 gül və göy və yarpaqları dəyişən, çünki. 689 00:43:55,260 --> 00:43:57,960 Amma indi son bir şey hesab edək. 690 00:43:57,960 --> 00:44:03,890 Növbəti 5 dəqiqə biz mühazirə əbədi arxasında C tərk edirsiniz? Bəli. Deyil psets də olsa. 691 00:44:03,890 --> 00:44:10,210 Son C haqqında hekayə və sonra biz çox sexy stuff almaq 692 00:44:10,210 --> 00:44:13,870 HTML və Web və woo-hoo cəlb. Bütün hüquqlar. 693 00:44:13,870 --> 00:44:16,050 Burada getmək. Yəni motivasiya var. 694 00:44:16,050 --> 00:44:20,020 Bu biz cingilti run proqramları yazılı edilmişdir zaman bütün bu dəfə çıxır. 695 00:44:20,020 --> 00:44:23,890 Və cingilti, biz olduqca çox ilk həftədən etibarən deyib sonra, mənbə kodu edir 696 00:44:23,890 --> 00:44:25,740 və obyekt kodu dönüştürür. 697 00:44:25,740 --> 00:44:28,540 Bu C alır və 0s və 1s dönüştürür. 698 00:44:28,540 --> 00:44:32,150 Bu kimi çox kimi sadə deyil çünki cür bir neçə həftə üçün sizə yalançı etdik. 699 00:44:32,150 --> 00:44:36,750 >> Siz cingilti kimi bir proqram çalıştırdığınızda başlıq altında gedən daha çox var. 700 00:44:36,750 --> 00:44:39,560 Əslində, bir proqram tərtib prosesi həqiqətən ümumiləşdirmək olar, 701 00:44:39,560 --> 00:44:42,210 siz derleyiciler haqqında Rob-nin video xatırlayıram bilər, 702 00:44:42,210 --> 00:44:47,580 bu 4 addımlar daxil: pre-emal, özü tərtib quraşdırma və əlaqələndirilməsi. 703 00:44:47,580 --> 00:44:51,950 Amma sinif biz və dünyada ən insanlar adətən bu addımlar bütün ümumiləşdirmək 704 00:44:51,950 --> 00:44:54,410 kimi yalnız "tərtib". 705 00:44:54,410 --> 00:44:58,070 Amma bu kimi mənbə kodu ilə başlamaq, bu, bəlkə də sadə C proqram geri 706 00:44:58,070 --> 00:45:03,530 biz tərtib zaman bu kimi axtarır başa Xatırladaq ki, bu günə qədər yazdıq. 707 00:45:03,530 --> 00:45:07,310 Lakin aralıq addım həqiqətən var və bu addımlar aşağıdakılardır. 708 00:45:07,310 --> 00:45:10,750 Birinci bu şey, bu və proqramlarının ən çox üst var 709 00:45:10,750 --> 00:45:13,550 # Daxildir 710 00:45:13,550 --> 00:45:17,210 # Bizim üçün nə daxil deyil? 711 00:45:17,210 --> 00:45:24,150 Mənim fayla Bu olduqca çox nüsxə və pastalar stdio.h məzmunu ki, niyə? 712 00:45:24,150 --> 00:45:27,220 Niyə stdio.h məzmunu haqqında qayğı yoxdur? Maraq var nə var? 713 00:45:27,220 --> 00:45:32,310 Derleyiciyi sonra nə demək bilir ki Printf bəyannaməsi, onun prototipi, 714 00:45:32,310 --> 00:45:34,900 Mən printf bu funksiyanı qeyd edir. 715 00:45:34,900 --> 00:45:39,390 Belə ki, tərtib 1-addım əvvəlcədən emal vasitəsi cingilti kimi bir proqram 716 00:45:39,390 --> 00:45:43,450 və ya cingilti ilə gəlir ki, bəzi köməkçi proqramı, alt üçün üst kodu oxuyur 717 00:45:43,450 --> 00:45:47,740 sağ və bu # rəmzi görür istənilən vaxt, include kimi bir söz sonra 718 00:45:47,740 --> 00:45:53,980 o çıxarmaq və fayl bu halda stdio.h ilə sovuşdurmaq ki, əməliyyat həyata keçirir. 719 00:45:53,980 --> 00:45:55,510 Bu addım 1 var. 720 00:45:55,510 --> 00:45:59,620 Sonra çünki böyük surəti oldu ki yapışdırıb iş daha böyük C fayl var. 721 00:45:59,620 --> 00:46:01,710 >> Addım 2 indi tərtib edilir. 722 00:46:01,710 --> 00:46:04,880 Amma tərtib belə görünür ki, mənbə kodu edir çıxır 723 00:46:04,880 --> 00:46:08,160 və bu kimi görünür ki, bir şey daxil çevrilir 724 00:46:08,160 --> 00:46:12,560 olan tanış üçün adlanır? >> [Tələbə] Məclisi. >> Assambleyasının dili. 725 00:46:12,560 --> 00:46:16,700 Bu, həqiqətən, daha çox ətraflı daxil dalış lazımdır siz CS61 əgər bir şeydir. 726 00:46:16,700 --> 00:46:22,380 Bu yalnız 0s və 1s özünüzü yazılı əldə edə bilərsiniz kimi haqqında kimi yaxın 727 00:46:22,380 --> 00:46:25,850 lakin hələ mənada ən azı bir az edir ki, belə bir şəkildə şeylər yazmaq. 728 00:46:25,850 --> 00:46:30,760 Bu maşın təlimatlar, biz burada əsas funksiyası aşağı diyirləyin əgər 729 00:46:30,760 --> 00:46:35,470 bu push göstərişi olduğunu qeyd, təlimat hərəkət təlimatı çıxmaq, 730 00:46:35,470 --> 00:46:38,550 təlimat zəng və s. 731 00:46:38,550 --> 00:46:42,930 Siz kompüter Intel daxilində var ki, eşidəndə 732 00:46:42,930 --> 00:46:46,180 sizin Mac və ya PC bir Intel CPU var ki, nə deməkdir? 733 00:46:46,180 --> 00:46:51,200 A CPU Intel müəyyən təlimat anlaşma kimi şirkətlər tərəfindən inşa minir. 734 00:46:51,200 --> 00:46:55,770 Onlar heç bir svop kimi funksiyaları nə fikir və ya əsas olunur özlüyündə var 735 00:46:55,770 --> 00:47:00,060 amma onlar kimi çox aşağı səviyyədə göstəriş əlavə nə çıxmaq, təkan yoxdur 736 00:47:00,060 --> 00:47:02,430 hərəkət, zəng və s var. 737 00:47:02,430 --> 00:47:06,170 Belə ki, sərbəst toplaşmaq dilinə C kodu tərtib edərkən, 738 00:47:06,170 --> 00:47:11,820 çox istifadəçi dostu görünüşlü kodu, bu kimi görünür ki, bir şey çevrilir 739 00:47:11,820 --> 00:47:21,670 ki, sözün və CPU həyata belə kiçik ədəd ətrafında bayt və ya 4 bayt hərəkət edir. 740 00:47:21,670 --> 00:47:26,820 Amma nəhayət, zaman cingilti proqram bu təmsil etmək üçün hazır 741 00:47:26,820 --> 00:47:30,940 0s və 1s, sonra montaj adlı addım olur daxil, 742 00:47:30,940 --> 00:47:33,850 zınqıltı çalışan zaman bu daha bütün bir göz blink baş verir. 743 00:47:33,850 --> 00:47:39,300 Biz burada başlamaq, bu kimi bir fayl çıxışlar, sonra bu 0s və 1s onu çevirir. 744 00:47:39,300 --> 00:47:42,000 Və bir anda geri getmək və faktiki fəaliyyət görmək istəyirsinizsə, 745 00:47:42,000 --> 00:47:48,220 - Mən daxil hello1.c-biz baxdı ilk proqramları biridir getmək əgər 746 00:47:48,220 --> 00:47:53,710 adətən biz cingilti hello1.c bu tərtib edəcək və bu, bizə a.out verəcək. 747 00:47:53,710 --> 00:47:59,890 Yerine bu-S bayrağı vermək əksinə varsa, nə almaq lazımdır hello1.s edir 748 00:47:59,890 --> 00:48:02,750 və həqiqətən montaj dil görəcəksiniz. 749 00:48:02,750 --> 00:48:05,750 >> Mən çox qısa bir proqram üçün bunu, amma alıram siz Scramble geri getmək əgər 750 00:48:05,750 --> 00:48:08,740 və ya bərpa və ya yazılı sonra hər hansı bir proqram və yalnız həyata maraq 751 00:48:08,740 --> 00:48:13,240 , əslində CPU daxil qidalanır olunur nə kimi faktiki görünür nə görmək istəyirəm 752 00:48:13,240 --> 00:48:15,700 siz cingilti ilə-S bayrağı istifadə edə bilərsiniz. 753 00:48:15,700 --> 00:48:17,770 Amma sonra nəhayət, bir gotcha hələ var. 754 00:48:17,770 --> 00:48:21,810 Burada hello, dünya mənim həyata təmsil edən 0s və 1s var. 755 00:48:21,810 --> 00:48:25,530 Amma mənim proqram başqasının funksiyası istifadə olunur. 756 00:48:25,530 --> 00:48:28,710 Belə ki, proses olmuşdur baxmayaraq, mən hello.c almaq 757 00:48:28,710 --> 00:48:34,280 o toplaşmaq kodu daxil tərtib edilir, sonra o, 0s və 1s daxil yığılmış olur 758 00:48:34,280 --> 00:48:37,460 vaxt bu nöqtədə outputted ki 0s yalnız və 1s 759 00:48:37,460 --> 00:48:40,270 olanları mənim kodu ki nəticəsidir. 760 00:48:40,270 --> 00:48:44,400 Amma printf yazan şəxs, onlar 20 il əvvəl onların kodu tərtib 761 00:48:44,400 --> 00:48:47,000 və indi, cihaz haqqında haradasa yüklü 762 00:48:47,000 --> 00:48:51,610 belə ki, biz birtəhər, mənim 0s və 1s ilə onun 0s və 1s daxil etmək 763 00:48:51,610 --> 00:48:56,160 və keçid kimi tanınan tərtib 4-cü və son addım bizə gətirir. 764 00:48:56,160 --> 00:48:58,680 Belə ki, sol tərəfdən biz əvvəlki kimi tam olaraq eyni şəkil var: 765 00:48:58,680 --> 00:49:02,580 hello.c toplaşmaq kodu 0s və 1s olur olur. 766 00:49:02,580 --> 00:49:05,960 Amma, mən kodu standart I / O kitabxana istifadə geri 767 00:49:05,960 --> 00:49:10,350 və stdio.c adlı bir fayl var haradasa kompüter deməkdir 768 00:49:10,350 --> 00:49:13,980 və ya ən azı tərtib version onların çünki bir neçə il əvvəl kimsə 769 00:49:13,980 --> 00:49:18,530 toplaşmaq kodu daxil stdio.c tərtib və sonra 0s və 1s bütün dəstə. 770 00:49:18,530 --> 00:49:21,130 Bu statik və ya dinamik kitabxana kimi tanınan nə edir. 771 00:49:21,130 --> 00:49:23,350 Bu cihaz yerə oturan bir fayl var. 772 00:49:23,350 --> 00:49:28,710 >> Amma nəhayət, mən 0s və 1s etmək və şəxsin 0s və 1s 773 00:49:28,710 --> 00:49:32,760 və birtəhər, onlara birlikdə link sözün birləşdirmək o 0s və 1s 774 00:49:32,760 --> 00:49:37,900 a.out ya hello1 və ya hər hansı adlı bir fayl Mən proqram çağırıb 775 00:49:37,900 --> 00:49:43,320 Sonda nəticə 1s və proqram tərtib ki 0s bütün var ki. 776 00:49:43,320 --> 00:49:45,660 Siz cingilti istifadə etdiyiniz zaman bütün bu vaxt bu dövr Beləliklə 777 00:49:45,660 --> 00:49:48,750 və daha yaxınlarda cingilti çalıştırmak üçün etmək çalışan 778 00:49:48,750 --> 00:49:53,580 bu addımlar bütün dərhal növ olur, lakin çox şüurlu edilmişdir. 779 00:49:53,580 --> 00:49:57,830 Və belə ki, məhz CS61, kompüter elm davam əgər 780 00:49:57,830 --> 00:50:00,850 Bu peel geri off davam edəcəyik ki, lay 781 00:50:00,850 --> 00:50:06,980 səmərəlilik, təhlükəsizlik nəticələri və bu aşağı detallarını kimi söhbət. 782 00:50:06,980 --> 00:50:09,220 Amma ki, biz geridə C tərk etmək haqqında istəyirik. 783 00:50:09,220 --> 00:50:11,420 Nin davam və indi 5 dəqiqə fasilə edək, 784 00:50:11,420 --> 00:50:14,190 və biz geri gəldikləri zaman: İnternet. 785 00:50:17,280 --> 00:50:19,170 Bütün hüquqlar. Biz geri. 786 00:50:19,170 --> 00:50:23,590 Gördüyünüz kimi, çünki biz, HTML deyil yalnız bizim göz başlamaq 787 00:50:23,590 --> 00:50:26,050 HTML özü əslində olduqca sadə 788 00:50:26,050 --> 00:50:29,270 amma həqiqətən web proqramlaşdırma daha çox, ümumiyyətlə, daha ümumi şəbəkə, 789 00:50:29,270 --> 00:50:31,770 və bu texnologiyaların birlikdə necə gəlib 790 00:50:31,770 --> 00:50:35,400 bizə Internet üstün daha çox inkişaf etmiş proqramları yaratmaq üçün imkan 791 00:50:35,400 --> 00:50:38,690 İndiyədək daha bu qara və ağ Windows edə bilərsiniz. 792 00:50:38,690 --> 00:50:42,140 Həqiqətən, semestr bu nöqtədə biz nisbətən az vaxt sərf edəcək, baxmayaraq ki, 793 00:50:42,140 --> 00:50:46,200 PHP, HTML, CSS, JavaScript, SQL və daha çox, 794 00:50:46,200 --> 00:50:48,480 ən tələbələr web-based ki, son layihələr bunu sonuna qədər nə 795 00:50:48,480 --> 00:50:51,230 görürsünüz kimi, fon İndi C, çünki 796 00:50:51,230 --> 00:50:54,450 Bu yüksək səviyyəli dillər tətbiq çox deyil. 797 00:50:54,450 --> 00:50:56,800 >> Və, son layihə haqqında düşünür başlamaq kimi 798 00:50:56,800 --> 00:50:59,940 ki, çox Problem Set 0 kimi, təşviq edildi 799 00:50:59,940 --> 00:51:02,160 Not sizə maraq çox şey etmək, 800 00:51:02,160 --> 00:51:05,790 yekun layihə C ilə newfound bilik və fərasət etmək üçün imkan 801 00:51:05,790 --> 00:51:09,850 və ya PHP və ya JavaScript və ya bir spin üçün istəyirəm 802 00:51:09,850 --> 00:51:12,330 və görmək üçün dünya üçün proqram öz parça yaradın. 803 00:51:12,330 --> 00:51:17,770 Və ideyaları ilə toxum sizin üçün, siz burada rəhbərlik edə bilər ki, projects.cs50.net bilirik. 804 00:51:17,770 --> 00:51:21,800 Hər il biz kampus fakültə və heyət ideyaları və tələbə qrupları iddiasını 805 00:51:21,800 --> 00:51:27,330 yalnız kompüter istifadə edərək həll edilə bilər ki, maraqlı şeylər üçün öz ideyalarını təqdim 806 00:51:27,330 --> 00:51:29,860 , internet istifadə proqram istifadə edərək. 807 00:51:29,860 --> 00:51:32,360 Siz, öz fikri ilə gəlmək üçün mübarizə edirik əgər 808 00:51:32,360 --> 00:51:35,790 bütün vasitələrlə bu il və son oradan ideyaları vasitəsilə hərəkət edir. 809 00:51:35,790 --> 00:51:39,990 Bu əvvəl həll edilmişdir ki, layihə həlli üçün mükəmməl tamam. 810 00:51:39,990 --> 00:51:44,540 Biz kampus camaşırxana statusu görən bir çox apps gördük 811 00:51:44,540 --> 00:51:47,000 yemək zalı menyu naviqasiya üçün bir çox apps, 812 00:51:47,000 --> 00:51:49,540 Kursun kataloq və kimi gezinmek üçün çox apps. 813 00:51:49,540 --> 00:51:53,680 Və həqiqətən, gələcək mühazirə və gələcək seminarlarda, 814 00:51:53,680 --> 00:51:57,750 biz kommersiya mövcud, həm də bəzi açıq API ilə tanış edəcək 815 00:51:57,750 --> 00:52:02,520 Məlumat əldə etmək imkanı, eləcə də burada mövcud kampus CS50 ki, belə 816 00:52:02,520 --> 00:52:04,910 və sonra bu maraqlı şeylər edə bilərsiniz. 817 00:52:04,910 --> 00:52:09,380 Biz dəqiqləşdirilməsi azad bir neçə gün yekun layihələr üzrə daha çox, 818 00:52:09,380 --> 00:52:12,990 indi üçün, bir-iki dostları ilə solo iş və ya bilir 819 00:52:12,990 --> 00:52:16,010 siz maraq ən istənilən layihənin üzərində. 820 00:52:16,010 --> 00:52:18,080 İnternet. 821 00:52:18,080 --> 00:52:22,300 Siz irəli getmək və dizüstü çıxarmaq, siz ilk dəfə facebook.com getmək 822 00:52:22,300 --> 00:52:27,020 son daxil və hit daxil olan deyil. Dəqiq nə olur? 823 00:52:27,020 --> 00:52:30,150 >> Addımlar bilgisayarınızda daxil edin hit zaman, bütün dəstə 824 00:52:30,150 --> 00:52:32,600 magically baş növ başlamaq. 825 00:52:32,600 --> 00:52:35,960 Belə ki, Facebook kimi sol, web server burada, sagdaki burada 826 00:52:35,960 --> 00:52:42,500 və elə siz HTTP, Hypertext Transfer Protocol adlanan bu dil istifadə edirik. 827 00:52:42,500 --> 00:52:46,770 HTTP bir proqramlaşdırma dili deyil. Bu protokol çoxdur. 828 00:52:46,770 --> 00:52:52,310 Bu intercommunicating zaman web browser və web server istifadə edən konvensiyalar müəyyən edilir. 829 00:52:52,310 --> 00:52:54,360 Və nə deməkdir belədir. 830 00:52:54,360 --> 00:52:56,790 Çox real dünya kimi, biz bu konvensiyalar var 831 00:52:56,790 --> 00:53:00,140 yerləşir, burada mənə humoring ağla deyil, əgər, ilk dəfə bir insan cavab əgər, 832 00:53:00,140 --> 00:53:03,980 Mən sizə gəlib, demək olar ki "Salam, mənim ad David edir." >> Salam, David. My name Sammy edir. 833 00:53:03,980 --> 00:53:05,770 "Salam, David. My name Sammy edir." 834 00:53:05,770 --> 00:53:08,310 Belə ki, indi biz yalnız silly insan protokol bu cür məşğul ola 835 00:53:08,310 --> 00:53:12,200 Mən protokol təşəbbüsü olduğu, Sammy, cavab verdi 836 00:53:12,200 --> 00:53:15,060 biz əlində sarsılmış sonra, və əməliyyatı tamamlandı. 837 00:53:15,060 --> 00:53:18,260 HTTP ruhunda çox oxşardır. 838 00:53:18,260 --> 00:53:23,350 Web browser sorğu www.facebook.com zaman, 839 00:53:23,350 --> 00:53:27,020 nə brauzerinizin həqiqətən edir, belə ki, danışmaq, onun əl genişləndirir 840 00:53:27,020 --> 00:53:29,960 server və bu mesaj var. 841 00:53:29,960 --> 00:53:34,220 Sizin üçün nə istəyirsiniz - Və Mesaj adətən almaq kimi bir şeydir? - 842 00:53:34,220 --> 00:53:38,740 Mənə adətən URL sonunda bir çizgi tərəfindən qeydi olan ev səhifə almaq. 843 00:53:38,740 --> 00:53:43,790 Və yalnız belə mən danışan deyiləm nə dil bilir, mən browser sizə gedirəm 844 00:53:43,790 --> 00:53:46,930 Mən, HTTP versiyası 1.1 danışan edirəm ki, 845 00:53:46,930 --> 00:53:51,980 Həmçinin yaxşı tədbir üçün, mən sizə demək gedirəm ki, mən ev səhifə istəyirəm ki, ev sahibi 846 00:53:51,980 --> 00:53:54,120 facebook.com edir. 847 00:53:54,120 --> 00:53:57,730 Adətən, sizə unbeknownst bir web browser,, insan, 848 00:53:57,730 --> 00:54:03,350 sadəcə, www.facebook.com yazın zaman İnternet vasitəsilə bu mesaj göndərir 849 00:54:03,350 --> 00:54:05,370 >> Brauzerinizin daxil edin. 850 00:54:05,370 --> 00:54:07,300 Nə Facebook ilə cavab verir? 851 00:54:07,300 --> 00:54:12,540 Bəzi oxşar görünüşlü sirli ətraflı həm də çox daha çox cavab verir. 852 00:54:12,540 --> 00:54:14,310 Mənə burada Facebook-un ana səhifəsinə davam edək. 853 00:54:14,310 --> 00:54:17,480 Bu, her zaman daxil qalmaq əgər bizim ən yəqin görmək heç də ekran 854 00:54:17,480 --> 00:54:19,830 lakin bu, həqiqətən onların ev səhifə. 855 00:54:19,830 --> 00:54:24,150 Biz Chrome bunu etsəniz, bu kiçik çərçivədə menyular qoparmaq bilər ki, qeyd. 856 00:54:24,150 --> 00:54:26,980 Chrome istifadə edərək, Mac OS, Windows, Linux, və ya kimi üzərində olub, 857 00:54:26,980 --> 00:54:31,840 klik və ya sol klik nəzarət varsa, adətən, bu kimi görünür ki, menyu qoparmaq bilər 858 00:54:31,840 --> 00:54:35,870 bir neçə variantları gözləyir yerləşir, hansı biri View Page Source edir. 859 00:54:35,870 --> 00:54:39,920 Siz həmçinin adətən View menyusundan və ətrafında poking bu şeylər əldə edə bilərsiniz. 860 00:54:39,920 --> 00:54:42,750 Məsələn, burada View altında Developer eyni şeydir. 861 00:54:42,750 --> 00:54:45,780 Mən irəli getmək və View Page Source baxmaq gedirəm. 862 00:54:45,780 --> 00:54:50,800 Nə görürsünüz Mark facebook.com təmsil yazılı ki, HTML. 863 00:54:50,800 --> 00:54:55,910 Burada tam mess, lakin biz uzun əvvəl bu bir az daha anlamlı görəcəksiniz. 864 00:54:55,910 --> 00:54:59,840 Amma burada bəzi nümunələri var. Bu kimi məhsulları aşağı diyirləyin edək. 865 00:54:59,840 --> 00:55:05,730 Bir insan bucaqlı mötərizə bu model oxumaq, lakin olduğunu qeyd etmək üçün çətindir 866 00:55:05,730 --> 00:55:10,360 seçim dəyər kimi açar sözlər, bəzi sitat strings kimi açar. 867 00:55:10,360 --> 00:55:15,660 Bu harada, siz doğum il nə ifadə ilk dəfə bağlayıb zaman. 868 00:55:15,660 --> 00:55:19,020 Dəğum il açılan menudan elə burada kodlanmış edir 869 00:55:19,020 --> 00:55:23,870 HTML, Hypertext Markup Language adlanan bu dildə. 870 00:55:23,870 --> 00:55:27,730 Başqa sözlə, brauzerinizin bir web səhifə xahiş zaman, 871 00:55:27,730 --> 00:55:30,610 bu HTTP adlanan bu Konvensiyanın danışır. 872 00:55:30,610 --> 00:55:35,170 Amma facebook.com ilə tələb nə cavab verir? 873 00:55:35,170 --> 00:55:38,260 >> Biz bir anda görəcəksiniz ki, bu sirli mesaj bəzi cavab verir. 874 00:55:38,260 --> 00:55:43,760 Amma onun cavabı ən HTML, Hypertext Markup Language şəklində deyil. 875 00:55:43,760 --> 00:55:47,170 Bu web page yazılı olan faktiki dil var. 876 00:55:47,170 --> 00:55:52,030 Və bir web browser həqiqətən, sonra bu kimi görünür ki, bir şey alınandan sonra nə deyil 877 00:55:52,030 --> 00:55:57,120 o sağ, aşağı üst oxuyur və istənilən vaxt bu bucaqlı mötərizə biri görür 878 00:55:57,120 --> 00:56:03,370 seçim kimi bir söz sonra, o, müvafiq şəkildə biçimlendirme dili gösterir. 879 00:56:03,370 --> 00:56:06,820 Bu halda, bu il açılan menyu göstərmək olar. 880 00:56:06,820 --> 00:56:09,240 Ancaq yenə də, bu baxmaq üçün tam bir mess edir. 881 00:56:09,240 --> 00:56:16,630 Facebook developers Məsələn, stil üçün 5 0 büruzə çünki bu deyil. 882 00:56:16,630 --> 00:56:20,190 Onlar yazmaq ki kodu ən çünki bu, əslində, gözəl yazılıb 883 00:56:20,190 --> 00:56:22,450 , yaxşı, şərh qəşəng indented və kimi 884 00:56:22,450 --> 00:56:26,080 ancaq maşın, kompüter, tarayıcılar həqiqətən bir lənətləmək vermir 885 00:56:26,080 --> 00:56:27,890 kodunuzu yaxşı səpkili olub. 886 00:56:27,890 --> 00:56:33,100 Və əslində, bu nişanı əsas bütün bu dəfə hit tamamilə israfçı var 887 00:56:33,100 --> 00:56:37,650 və kodu bütün şərh qoymaq və həqiqətən təsviri dəyişən adları seçmək 888 00:56:37,650 --> 00:56:42,340 Brauzer qayğı olmadıqda, çünki günün sonunda edirik bütün bayt israf edilir. 889 00:56:42,340 --> 00:56:46,660 >> Belə ki, baxmayaraq facebook.com üçün kodu mənbəyi nə ən saytları nə edir çıxır 890 00:56:46,660 --> 00:56:49,550 İnternet cs50.net və digər saytları bütün 891 00:56:49,550 --> 00:56:53,730 adətən yaxşı yazılı və şərh və qəşəng indented və kimi edilir, 892 00:56:53,730 --> 00:56:59,270 veb İnternet üzərində qoyulur adətən əvvəl, kodu minified ki, 893 00:56:59,270 --> 00:57:02,970 vasitəsi HTML və CSS - biz tezliklə görəcəksiniz başqa bir şey - 894 00:57:02,970 --> 00:57:05,960 biz tezliklə görəcəksiniz JavaScript kodu sıxdı, 895 00:57:05,960 --> 00:57:09,250 uzun dəyişən adları olmaq vasitəsi X və Y və Z, 896 00:57:09,250 --> 00:57:13,900 və hər şey belə oxunaqlı baxmaq edir ki, ağ bütün bütün üz atılır 897 00:57:13,900 --> 00:57:17,700 - Siz bu yolu hesab, Facebook bir milyard səhifə gün xit olur, çünki 898 00:57:17,700 --> 00:57:21,670 kimi dəli bir şey - belə nə bir proqramçı yalnız anal əgər 899 00:57:21,670 --> 00:57:26,660 yalnız heç belə daha kodu bir line indent üçün yer bar bir əlavə vaxt edib? 900 00:57:26,660 --> 00:57:29,500 Facebook qoruyur əgər dolayısı hansı ki, ağ 901 00:57:29,500 --> 00:57:32,880 bu bytes bütün onlar İnternet insanların geri göndərmək? 902 00:57:32,880 --> 00:57:36,400 Yer bar çarpan bir dəfə sizin fayl əlavə byte verir. 903 00:57:36,400 --> 00:57:39,730 Və əgər bir milyard insanın, sonra o gün ev səhifə yükləmək üçün davam 904 00:57:39,730 --> 00:57:42,060 İnternet üzərində nə qədər çox data ötürülən var? 905 00:57:42,060 --> 00:57:45,200 Heç bir yaxşı səbəb üçün gigabyte. 906 00:57:45,200 --> 00:57:48,510 Və verilmiş, web sites bir çox bu, belə bir ölçeklenebilir məsələ deyil 907 00:57:48,510 --> 00:57:51,030 lakin Facebook, Google üçün ən populyar saytları bəzi 908 00:57:51,030 --> 00:57:54,860 böyük stimul sizin kodu mess kimi baxmaq üçün maliyyə var 909 00:57:54,860 --> 00:57:58,980 Əgər o kompressor əlavə mümkün qədər az bytes kimi istifadə edirsinizsə ki, 910 00:57:58,980 --> 00:58:01,500 zip kimi bir şey istifadə edərək, alqoritm, gzip adlı 911 00:58:01,500 --> 00:58:04,250 brauzer sizin üçün avtomatik olaraq ki. Amma bu dəhşətli deyil. 912 00:58:04,250 --> 00:58:08,060 Biz digər insanların saytları haqqında bir şey öyrənmək heç vaxt lazımdır və web pages dizayn necə 913 00:58:08,060 --> 00:58:09,680 biz bu kimi baxmaq var. 914 00:58:09,680 --> 00:58:13,620 >> Belə ki, xoşbəxtlikdən, Chrome və IE və Firefox kimi brauzerlərdə bu gün 915 00:58:13,620 --> 00:58:16,450 adətən daxili geliştirici alətləri ilə gəlmək. 916 00:58:16,450 --> 00:58:21,730 Mən Element ya Inspect burada enmək əgər Əslində, mən, Developer bax getmək 917 00:58:21,730 --> 00:58:25,220 və aydın Developer Tools getmək 918 00:58:25,220 --> 00:58:27,640 mənim ekranın altındakı bu pəncərə indi açılır. 919 00:58:27,640 --> 00:58:31,230 Tanımadığı Nişanlar çox burada var, çünki ilk bir az qorxuducu deyil 920 00:58:31,230 --> 00:58:34,510 amma alt sol elementləri bütün yol basın varsa, 921 00:58:34,510 --> 00:58:38,810 Chrome açıq-aydın olduqca ağıllı deyil. Bu bütün kodu şərh bilir. 922 00:58:38,810 --> 00:58:42,320 Və Chrome nə o Facebook HTML bütün up təmizləyir edir. 923 00:58:42,320 --> 00:58:45,680 Ağ orada deyil baxmayaraq, abzas, orada deyil 924 00:58:45,680 --> 00:58:51,120 İndi bütün daha hiyerarşik bu web page getmək başlaya bilər ki, görürsünüz. 925 00:58:51,120 --> 00:58:56,910 Bu HTML5 adlı dilində yazılmış hər web page, bu ilə başlamaq lazımdır çıxır ki, 926 00:58:56,910 --> 00:59:03,980 bu DOCTYPE bəyanat, belə ki, danışmaq üçün: 927 00:59:03,980 --> 00:59:07,840 Bu yüngül və boz orada növü var, ancaq bu fayl kodu ilk xətt var 928 00:59:07,840 --> 00:59:12,080 və yalnız "Hey, burada HTML5 gəlir. Burada bir web page gəlir.", brauzerinizin deyir 929 00:59:12,080 --> 00:59:18,490 Ki, kənarda ilk açıq bracket bu şey, açıq bracket HTML tag, olmaq olur 930 00:59:18,490 --> 00:59:22,320 Mən dərin dalış əgər, sonra - bu oxlar tamamilə mənasız edir; 931 00:59:22,320 --> 00:59:25,140 yalnız təqdimat xatirinə, onlar fayl həqiqətən deyildir - 932 00:59:25,140 --> 00:59:30,300 Facebook HTML tag ki, daxili, açıq bracket ilə başlayır ki, bir şey qeyd 933 00:59:30,300 --> 00:59:32,910 və sonra bir söz tag adlanır etmişdir. 934 00:59:32,910 --> 00:59:38,610 Belə ki, HTML tag daxilində baş tag və bədən tag yəqin edir. 935 00:59:38,610 --> 00:59:41,930 Baş tag Inside indi Facebook üçün bütün mess edir 936 00:59:41,930 --> 00:59:45,620 onlar marketinq və reklam üçün metadata və digər çox şey var. 937 00:59:45,620 --> 00:59:50,600 >> Biz aşağı diyirləyin Lakin, aşağı, aşağı, aşağı, olduğu nin görək. Burada deyil. 938 00:59:50,600 --> 00:59:52,210 Bu, bir azı qədər tanış deyil. 939 00:59:52,210 --> 00:59:55,990 Facebook ana səhifə adı, heç title bar nişanı baxmaq əgər, 940 00:59:55,990 --> 00:59:59,060 Facebook xoş gəlmisiniz - Up ol və ya daha çox məlumat, Giriş. 941 00:59:59,060 --> 01:00:01,110 Ki, Chrome adı bar görmək nə var 942 01:00:01,110 --> 01:00:03,100 və bu kodu təmsil ne var. 943 01:00:03,100 --> 01:00:08,090 Biz baş başqa hər şey ignore varsa, veb səhifə içalat ən çox orqan var 944 01:00:08,090 --> 01:00:10,940 və Facebook kodu daha kompleks baxmaq gedir çıxır ki, 945 01:00:10,940 --> 01:00:14,540 çox şey çox biz, bu il ərzində inşa edilmişdir yalnız ilkin yazacaq 946 01:00:14,540 --> 01:00:17,260 lakin script tags bütün çox, JavaScript kodu, var 947 01:00:17,260 --> 01:00:18,870 ki, web çox interaktiv edir: 948 01:00:18,870 --> 01:00:22,330 dərhal JavaScript kimi dillərindən istifadə statusu yenilikləri görüb. 949 01:00:22,330 --> 01:00:25,270 Bir səhifə bir bölmə olan div deyilən bir şey var. 950 01:00:25,270 --> 01:00:27,940 Ancaq biz ətraflı almaq əvvəl, kiçiltmək üçün cəhd edək 951 01:00:27,940 --> 01:00:31,920 və belə danışmaq, Facebook 1.0 sadə versiyası oldu. 952 01:00:31,920 --> 01:00:34,740 Burada web pages hello, dünya. 953 01:00:34,740 --> 01:00:37,370 Bu çox üst ki, DOCTYPE bəyannamə var 954 01:00:37,370 --> 01:00:40,280 hansı başqa hər şey bir az fərqlidir. 955 01:00:40,280 --> 01:00:46,130 Biz bir web page yazmaq başqa bir şey 01:00:48,880 və HTML şərh deyilən bir şey istisna olmaqla. 957 01:00:48,880 --> 01:00:53,000 Amma çox hissəsi üçün, bir web page hər şeyi açıq bracket, söz, yaxın bracket edir. 958 01:00:53,000 --> 01:00:56,220 >> Bu halda mümkün web pages sadə bilərsiniz. 959 01:00:56,220 --> 01:01:00,260 , HTML tag baş tag var və bu orqan tag şey 960 01:01:00,260 --> 01:01:04,580 lakin tags başlayaraq dayandırılması bu anlayış olduğunu görürük. 961 01:01:04,580 --> 01:01:11,360 Bu HTML üçün başlanğıc etiketi, bu yaxın tag və ya son tag edir. 962 01:01:11,360 --> 01:01:15,400 Onlar mənada opposites növ olduğunu bildirək ki, yaxın tag və ya son tag 963 01:01:15,400 --> 01:01:20,030 bu irəli özü daxilində zərbə olmuşdur. 964 01:01:20,030 --> 01:01:23,540 Eyni zamanda, burada açıq baş tag və burada yaxın baş tag var. 965 01:01:23,540 --> 01:01:26,880 >> Açıq adı və yaxın adı tag burada var. 966 01:01:26,880 --> 01:01:29,850 Mən sırf ixtiyari bir xətt üzrə adı gətirdik ki. 967 01:01:29,850 --> 01:01:33,760 Bir line gözəl uyğun olardı kimi yalnız baxdı, mən bir neçə dəfə daxil edin vuruş narahat etmədi. 968 01:01:33,760 --> 01:01:38,200 Eyni zamanda, mən bədənin yalnız heç belə aydın ola indent. 969 01:01:38,200 --> 01:01:41,050 HTML olduqca lal dili edək ki,. 970 01:01:41,050 --> 01:01:43,410 Əslində, geri gün WYSIWYG redaktorları var idi əvvəl 971 01:01:43,410 --> 01:01:46,770 və siz deyə bilərsiniz Microsoft Word "bu cəsarətli olun, bu italik etmək" 972 01:01:46,770 --> 01:01:50,850 həqiqətən, 20 + il əvvəl oçerklər az komutları yazın ki, 973 01:01:50,850 --> 01:01:55,740 deyəcəksiniz vasitəsi, "Bu mətn qalın edilməsi başlayın. bu mətn qalın edilməsi dayandırmaq." 974 01:01:55,740 --> 01:01:59,010 "Bu mətn kursiv edilməsi başlayın. Bu mətn kursiv edilməsi dayandırmaq." 975 01:01:59,010 --> 01:02:01,850 >> Bu HTML və ya hər hansı biçimlendirme dili budur. 976 01:02:01,850 --> 01:02:05,530 Bu ilk tag "Hey, brauzerinizin. Burada bəzi HTML gəlir." Deyir 977 01:02:05,530 --> 01:02:09,880 Növbəti tag "Hey, brauzerinizin. Burada baş, mənim web page mövzu gəlir." Deyir 978 01:02:09,880 --> 01:02:11,650 "Hey, brauzerinizin. Burada adı gəlir." 979 01:02:11,650 --> 01:02:15,880 Və sonra burada, "Hey, brauzerinizin. Bu başlığı üçün." 980 01:02:15,880 --> 01:02:20,000 Belə ki, bu dünyada, brauzerinizin salam daha çox simvol Profilə artıq bilir necə 981 01:02:20,000 --> 01:02:21,860 mövzu çubuğunda. 982 01:02:21,860 --> 01:02:23,640 Eyni zamanda, bu deyir, "Bu baş üçün." 983 01:02:23,640 --> 01:02:28,340 Bu, "Burada bədən gəlir Burada faktiki orqanıdır." Deyir - hello, dünya, sanki söz. 984 01:02:28,340 --> 01:02:33,190 Və burada deyir ki, "Bu bədən üçün bu. HTML üçün var." 985 01:02:33,190 --> 01:02:34,640 Belə brauzerlər olduqca lallardır. 986 01:02:34,640 --> 01:02:39,920 Onlar yalnız sağ alt üst bu məhsulları, oxumaq və məhz onlar bunu izah nə. 987 01:02:39,920 --> 01:02:41,860 Əslində burada bir az Məsələn nə edək. 988 01:02:41,860 --> 01:02:46,240 Mənə TextEdit məhz burada, mənim Mac proqramlarının sadə açmaq edək. 989 01:02:46,240 --> 01:02:48,220 Windows siz Notepad.exe istifadə edə bilər. 990 01:02:48,220 --> 01:02:50,520 Lakin bu web pages edilməsi başlamaq üçün lazım olan bütün edir. 991 01:02:50,520 --> 01:02:53,730 Mən irəli getmək və yalnız bu fayla bu kodu seçin və yapışdırıb gedirəm. 992 01:02:53,730 --> 01:02:57,210 I, davam və mənim masa üstü saxlamaq üçün gedirəm 993 01:02:57,210 --> 01:03:01,220 və mən hello.html kimi saxlamaq üçün gedirəm 994 01:03:01,220 --> 01:03:03,840 və indi fayl hello.html adlanır. 995 01:03:03,840 --> 01:03:05,690 Burada mənim masa üstü edir. 996 01:03:05,690 --> 01:03:11,130 Mənə indi bir browser daxil və brauzerinizin daxil fayl sürükleyin edək. 997 01:03:11,130 --> 01:03:14,060 Və voiture, burada mənim ilk web page edir. 998 01:03:14,060 --> 01:03:17,340 Sekmesini adı salam edək ki, adı tag üzrə dünya, 999 01:03:17,340 --> 01:03:20,040 hello, dünya mənim web page orqanı olduğunu və bildiriş 1000 01:03:20,040 --> 01:03:22,190 və woo-hoo, mən İnternet edirəm. 1001 01:03:22,190 --> 01:03:24,700 >> Bu fayl İnternet deyil, çünki mən, həqiqətən, doğru deyiləm. 1002 01:03:24,700 --> 01:03:28,330 Bu, mənim yerli sabit xüsusi yol üzərində olur. 1003 01:03:28,330 --> 01:03:32,720 Amma fikir eyni deyil. Indi biz lazım olan yüklemek üçün bir web server edir. 1004 01:03:32,720 --> 01:03:37,410 Amma ilk nin əslində bir az daha mürəkkəb və bir az daha stilləşdirmə təqdim etsinlər. 1005 01:03:37,410 --> 01:03:39,890 Bu sadə, əgər qazma, web səhifə. 1006 01:03:39,890 --> 01:03:41,990 Biz istifadə edə bilərsiniz tags digər növləri var həyata çevirir. 1007 01:03:41,990 --> 01:03:45,530 Məsələn, burada sarı I 2 yeni tags təqdim etdik. 1008 01:03:45,530 --> 01:03:49,630 Biz bu gün çox oynayır, lakin qeyd edir ki link tag 1009 01:03:49,630 --> 01:03:52,520 birtəhər başqa hər şey fərqli görünür. 1010 01:03:52,520 --> 01:03:55,370 Link tag, funksiyalar deyilir nə edir 1011 01:03:55,370 --> 01:03:59,770 və bir özellik bir tag davranış düzəliş bir şeydir. 1012 01:03:59,770 --> 01:04:03,840 Bu halda bu, adları, link ən yaxşı seçim deyil, çünki bu cür mənasız və 1013 01:04:03,840 --> 01:04:11,590 lakin bu link tag mənim web page daxilində styles.css adlı fayl daxildir, mahiyyətcə, deyir. 1014 01:04:11,590 --> 01:04:15,400 Siz C-nin # direktiv daxil etmək üçün bu kimi oxşar hesab edə bilər. 1015 01:04:15,400 --> 01:04:19,650 Styles.css, bu gün oynamaq deyil ki, tamamilə müxtəlif dil istinad 1016 01:04:19,650 --> 01:04:23,790 lakin bu estetika üçün var: font ölçüləri, rənglər, padding, abzas, qıraq, 1017 01:04:23,790 --> 01:04:26,040 və estetik ətraflı belə bütün. 1018 01:04:26,040 --> 01:04:28,820 Bu vaxt, script tag, funksional oxşar 1019 01:04:28,820 --> 01:04:33,140 lakin daxil CSS ki, dil çox, başqa bir dil, JavaScript daxildir. 1020 01:04:33,140 --> 01:04:37,810 Belə ki, başqa sözlə, bu 2 tags Mən nəhayət mənim öz web page yazmaq olacaq 1021 01:04:37,810 --> 01:04:41,490 həm də mən və ya bir başqası yazılı ki kodu çəkin 1022 01:04:41,490 --> 01:04:44,350 biz başqa insanların üzərinə durmaq bilər ki, biz yaxşı dizayn təcrübə edə bilərsiniz 1023 01:04:44,350 --> 01:04:46,120 ümumi kodunu faktorinq. 1024 01:04:46,120 --> 01:04:49,090 Mən 10 müxtəlif web pages var, bu o deməkdir ki, mənim estetik bəzi 1025 01:04:49,090 --> 01:04:52,490 çox # bir ayrı fayla daxil kimi factored ola bilər. 1026 01:04:52,490 --> 01:04:54,420 Belə ki, biz orada əldə edirik. 1027 01:04:54,420 --> 01:04:57,180 Amma nin əslində ilk bu fayl ilə daha maraqlı bir şey edək. 1028 01:04:57,180 --> 01:05:01,110 >> Yenə, bu, yalnız TextEdit edir. Mən hələ İnternet texniki deyiləm, lakin orada almaq lazımdır. 1029 01:05:01,110 --> 01:05:04,910 Mən bunu daha hello, dünya bir az bolder etmək istərdim. 1030 01:05:04,910 --> 01:05:10,890 Belə ki, hello, in özbaşına qalın deyək. 1031 01:05:10,890 --> 01:05:15,910 Yenə hekayə eyni: hello, vergül, bu qalın edilməsi başlamaq 1032 01:05:15,910 --> 01:05:19,730 sonra dünya qalın çap, bu qalın, bu çap dayandırmaq deməkdir olur. 1033 01:05:19,730 --> 01:05:24,020 Mənə davam və mənim fayl saxlamaq, Chrome geri edək, yalnız belə ki, biz daha yaxşı görə bilərsiniz zoom olacaq 1034 01:05:24,020 --> 01:05:27,870 və yenidən, və dünyanın qalın indi görürsünüz. 1035 01:05:27,870 --> 01:05:31,810 Web bütün hiperlink haqqında, belə ki, in irəli getmək və bunu edək: 1036 01:05:31,810 --> 01:05:38,550 mənim sevimli haqqinda, youtube.com, deyək. 1037 01:05:38,550 --> 01:05:43,810 Yeniden Saxla. Okay. İndi web iğrençlik yanaşı bir neçə problemlər var. 1038 01:05:43,810 --> 01:05:47,310 1, mən burada Enter olduqca əminəm. Mən etdim. 1039 01:05:47,310 --> 01:05:51,590 Ki, biz stil haqqında vəz olduğunuz nə təcrübə, mən də indented, Enter yalnız 1040 01:05:51,590 --> 01:05:54,930 lakin mənim dünya hüququ yanında. 1041 01:05:54,930 --> 01:05:58,410 Belə ki, niyə bu? Reytinqdə yalnız onlara nə demək nə. 1042 01:05:58,410 --> 01:06:04,010 Mən "burada Break satır. Daxil paraqraf burada qırmaq". Brauzer bildirib deyil 1043 01:06:04,010 --> 01:06:07,820 Mən qayıt 30 dəfə hit əgər brauzer Belə ki, bu, vacib deyil 1044 01:06:07,820 --> 01:06:10,820 hələ də dünyaya gələn mənim sağ qoymaq olacaq. 1045 01:06:10,820 --> 01:06:15,930 Mən, həqiqətən, burada nə var,
bir şey kimi demək xətti fasilə daxil edilir. 1046 01:06:15,930 --> 01:06:17,940 >> Və həqiqətən, bir xətt fasilə bir qəribə şey növ 1047 01:06:17,940 --> 01:06:21,650 Əgər həqiqətən bir xətt hərəkət başlamaq bilməz, çünki, sonra bir şey 1048 01:06:21,650 --> 01:06:25,380 və sonra yeni bir xətt hərəkət dayandırmaq. Bu atom əməliyyat növü var. 1049 01:06:25,380 --> 01:06:28,140 Ya bunu ya yox. Siz Enter və ya deyil. 1050 01:06:28,140 --> 01:06:33,390 Belə br müxtəlif tag bir az, və mən də açıq sort və yaxın lazımdır 1051 01:06:33,390 --> 01:06:35,230 bütün bir dəfə. 1052 01:06:35,230 --> 01:06:37,500 Ki üçün sintaksis bu. 1053 01:06:37,500 --> 01:06:41,760 Texniki, siz HTML bəzi versiyalarında bu kimi bir şey edə 1054 01:06:41,760 --> 01:06:45,600 bir şey başlamaq və dayandırmaq üçün heç bir səbəb yoxdur, çünki bu yalnız axmaq deyil 1055 01:06:45,600 --> 01:06:48,420 yerine bir dəfə bütün edə bilər. 1056 01:06:48,420 --> 01:06:52,310 Ki, HTML5 ciddi, bu çizgi tələb etmir həyata 1057 01:06:52,310 --> 01:06:55,410 belə ki, bu, yoxdur ki, dərslik və online qaynaqları görəcəksiniz 1058 01:06:55,410 --> 01:06:59,780 lakin yaxşı tədbir üçün biz belə uzaq gördüm ki, simmetriya təcrübə imkan verir. 1059 01:06:59,780 --> 01:07:02,870 Bu tag həm açdı və qapalı deməkdir. 1060 01:07:02,870 --> 01:07:05,220 İndi məni buraya geri getmək, mənim faylı bildirin. 1061 01:07:05,220 --> 01:07:10,240 OK, belə ki, mən bilirəm, Web istisna olmaqla, yaxşı baxmaq başlayan, mehriban tıklanabilir edir 1062 01:07:10,240 --> 01:07:13,610 və hələ burada youtube bir şey səbəb görünmür. 1063 01:07:13,610 --> 01:07:17,560 Bir link kimi görünür olsa da, çünki ki, brauzer ki, özlüyündə bilmir 1064 01:07:17,560 --> 01:07:20,670 Mən bu bir link ki browser demək lazımdır. 1065 01:07:20,670 --> 01:07:22,620 >> Bu yol bir anker tag istifadə edir: 1066 01:07:22,620 --> 01:07:26,770 01:07:35,900 = "Http://www.youtube.com"> 1068 01:07:35,900 --> 01:07:38,490 və bir az daha oxunaqlı deyil mənə yalnız bir yeni xətt bu hərəkət imkan 1069 01:07:38,490 --> 01:07:40,060 Mən font ölçüsü shrink olacaq. 1070 01:07:40,060 --> 01:07:43,890 Mən hələ həyata Am? No bu dichotomy olmalıdır olacaq. 1071 01:07:43,890 --> 01:07:46,760 Bu tag, lövbəri tag, həqiqətən, bir özellik sürer 1072 01:07:46,760 --> 01:07:52,900 onun davranış düzəliş və atribut dəyəri yəqin YouTube URL deyil. 1073 01:07:52,900 --> 01:07:56,380 Amma dichotomy qeyd edir ki, siz davam olduğunuz URL görə ki, 1074 01:07:56,380 --> 01:08:01,020 ki, siz qeyd və bir link edirik ki, söz olmalıdır ki, demək deyil. 1075 01:08:01,020 --> 01:08:03,960 Əksinə, bu kimi bir şey ola bilər. 1076 01:08:03,960 --> 01:08:10,870 Mən bu söz yaxın lövbər tag istifadə edərək, bir köprü edilməsi dayandırmaq demək lazımdır. 1077 01:08:10,870 --> 01:08:12,650 Mən bunu deyiləm edək. 1078 01:08:12,650 --> 01:08:15,890 1, bu, yalnız hər kəsin bir zaman tullantıları olacaq və lazım deyil. 1079 01:08:15,890 --> 01:08:19,290 >> Bir tag bağlamaq, yalnız daha tag adını. 1080 01:08:19,290 --> 01:08:21,800 Siz atributları heç bir qeyd yoxdur. 1081 01:08:21,800 --> 01:08:26,189 Belə ki, geri ki, saxlamaq imkan verir. OK, voiture, indi mavi və köprü var. 1082 01:08:26,189 --> 01:08:29,430 Mən bunu basın, Mən, həqiqətən, YouTube getmək yoxdur. 1083 01:08:29,430 --> 01:08:32,529 Web səhifə İnternet deyil, baxmayaraq Belə ki, ən azı HTML 1084 01:08:32,529 --> 01:08:37,930 biz İnternet tutmaq imkan və biz, həqiqətən, youtube.com burada sona olardı. 1085 01:08:37,930 --> 01:08:40,670 Mən geri gedə bilər və burada mənim web page var. Amma bu bildiriş. 1086 01:08:40,670 --> 01:08:43,120 Əgər spam və ya bir phishing kazanılmış varsa, 1087 01:08:43,120 --> 01:08:45,850 İndi eyni şeyi yalnız beş dəqiqə sonra imkanı var. 1088 01:08:45,850 --> 01:08:50,920 Biz www.badguy.com kimi bir şey burada getmək və nə edə bilər 1089 01:08:50,920 --> 01:08:59,319 və ya hər hansı yarım yamalak veb, sonra sizin PayPal hesabı doğrulamak demək olar. 1090 01:08:59,319 --> 01:09:04,840 [Gülüş] İndi bu mən basın gitmiyorum olan badguy.com, getmək gedir 1091 01:09:04,840 --> 01:09:08,000 Hesab edirəm ki, səbəb olduğu heç bir fikrim yoxdur, çünki. [Gülüş] 1092 01:09:08,000 --> 01:09:10,859 >> Ancaq biz indi, həqiqətən, orada sonuna qədər imkanı var. 1093 01:09:10,859 --> 01:09:12,640 Belə ki, biz, həqiqətən, yalnız səthi danışıq başlayaraq edirik. 1094 01:09:12,640 --> 01:09:15,830 Biz özlüyündə proqramlaşdırma deyilik, biz biçimlendirme dili yazıyoruz. 1095 01:09:15,830 --> 01:09:18,569 Amma tezliklə biz, HTML bizim lüğət top kimi 1096 01:09:18,569 --> 01:09:21,520 biz PHP, faktiki proqramlaşdırma dili ilə tanış olacaq 1097 01:09:21,520 --> 01:09:26,859 ki, avtomatik CSS yaratmaq, bizim avtomatik HTML yaratmaq imkan verir 1098 01:09:26,859 --> 01:09:29,430 biz ki, həyata keçirilməsi üçün çərşənbə günü başlaya bilər ki, 1099 01:09:29,430 --> 01:09:31,700 öz axtarışı və daha çox. 1100 01:09:31,700 --> 01:09:34,770 Bir neçə gün ki, lakin daha çox. Biz sonra görəcəksiniz. 1101 01:09:34,870 --> 01:09:39,000 >> [CS50.TV]