1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate HARDISON: Dalam video pada binari, kita menunjukkan bagaimana untuk 2 00:00:09,290 --> 00:00:12,540 mewakili set nombor bulat, dari sifar sehingga, 3 00:00:12,540 --> 00:00:15,110 menggunakan hanya digit sifar dan satu. 4 00:00:15,110 --> 00:00:17,890 Dalam video ini, kita akan menggunakan notasi binari 5 00:00:17,890 --> 00:00:21,160 mewakili teks, surat dan sebagainya, serta. 6 00:00:21,160 --> 00:00:22,810 >> Mengapa kita harus bersusah payah untuk melakukan ini? 7 00:00:22,810 --> 00:00:25,450 Nah, di bawah hood, komputer hanya benar-benar 8 00:00:25,450 --> 00:00:29,070 memahami sifar dan orang-orang, angka binari, kerana ini 9 00:00:29,070 --> 00:00:32,100 boleh diwakili mudah dengan perkara-perkara elektromagnet. 10 00:00:32,100 --> 00:00:35,040 >> Sebagai contoh, berfikir memori komputer anda seperti panjang 11 00:00:35,040 --> 00:00:37,810 rentetan mentol, di mana setiap individu mentol 12 00:00:37,810 --> 00:00:40,680 mewakili sifar jika ia dimatikan, dan satu 13 00:00:40,680 --> 00:00:42,230 jika ia dihidupkan. 14 00:00:42,230 --> 00:00:44,730 Sebaliknya menggunakan sekumpulan mentol lampu, beberapa moden 15 00:00:44,730 --> 00:00:46,990 ingatan ini menggunakan kapasitor yang memegang rendah 16 00:00:46,990 --> 00:00:49,120 mengenakan bayaran untuk mewakili sifar dan caj tinggi 17 00:00:49,120 --> 00:00:50,780 untuk mewakili satu. 18 00:00:50,780 --> 00:00:52,510 >> Terdapat teknik-teknik lain juga. 19 00:00:52,510 --> 00:00:55,500 Bagaimanapun, dalam usaha untuk menyimpan apa-apa dalam ingatan, kita perlu 20 00:00:55,500 --> 00:00:57,590 menukarkan ia menjadi sesuatu yang boleh sebenarnya 21 00:00:57,590 --> 00:01:00,140 diwakili dalam perkakasan fizikal. 22 00:01:00,140 --> 00:01:02,450 Jadi mari kita berfikir tentang bagaimana kita mungkin mewakili huruf dengan 23 00:01:02,450 --> 00:01:04,230 notasi binari. 24 00:01:04,230 --> 00:01:08,141 Dalam bahasa Inggeris, kita telah mendapat 26 huruf dalam abjad, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, dan sebagainya, sehingga melalui Z. Kita boleh memberikan setiap seorang daripada 26 00:01:12,930 --> 00:01:16,650 ini nombor, katakan sifar melalui 25, dan kemudian menggunakan 27 00:01:16,650 --> 00:01:18,880 notasi binari, kita boleh mewakili setiap nombor sebagai 28 00:01:18,880 --> 00:01:20,890 jujukan sifar dan orang-orang. 29 00:01:20,890 --> 00:01:22,420 Itu tidak terlalu buruk. 30 00:01:22,420 --> 00:01:25,050 Walau bagaimanapun, itu tidak akan cukup. 31 00:01:25,050 --> 00:01:27,680 Dengan sistem ini, kita sebenarnya tidak boleh membezakan antara 32 00:01:27,680 --> 00:01:29,830 huruf besar dan huruf kecil. 33 00:01:29,830 --> 00:01:32,140 Jika kita mahu komputer kita untuk dapat membezakan antara 34 00:01:32,140 --> 00:01:36,020 kedua-dua kes, maka kita perlu tambahan 26 nombor. 35 00:01:36,020 --> 00:01:38,700 Dan apa tentang tempoh, koma, dan 36 00:01:38,700 --> 00:01:40,390 tanda baca yang lain? 37 00:01:40,390 --> 00:01:43,560 >> Keyboard saya, saya telah mendapat 32 daripada mereka, termasuk semua 38 00:01:43,560 --> 00:01:46,800 aksara khas seperti tanda sisipan dan #: glib. 39 00:01:46,800 --> 00:01:49,700 Itu tidak termasuk aksara digit, sifar melalui sembilan, 40 00:01:49,700 --> 00:01:51,840 sejak kita masih mahu menjadi mampu untuk menaip nombor dalam perpuluhan 41 00:01:51,840 --> 00:01:54,840 notasi di dalam komputer, walaupun komputer hanya benar-benar 42 00:01:54,840 --> 00:01:57,830 memahami notasi binari di bawah hood. 43 00:01:57,830 --> 00:02:00,620 >> Dan akhirnya, kita perlukan untuk mewakili aksara ruang supaya 44 00:02:00,620 --> 00:02:02,450 Space Bar kami berfungsi. 45 00:02:02,450 --> 00:02:04,920 Jadi memikirkan bagaimana untuk mewakili teks pada komputer 46 00:02:04,920 --> 00:02:08,400 mengambil masa sedikit lebih daripada kita mungkin berfikir pada mulanya. 47 00:02:08,400 --> 00:02:11,710 Selain itu, mengandaikan kita kemudian tampil dengan pengekodan kita sendiri 48 00:02:11,710 --> 00:02:14,560 skim untuk mewakili aksara seperti nombor. 49 00:02:14,560 --> 00:02:17,470 Walau bagaimanapun, kami memutuskan untuk mengekod aksara pasti akan 50 00:02:17,470 --> 00:02:20,630 sewenang-wenangnya, seperti yang kita lihat sebelum ini, apabila kita bercakap tentang menggunakan 51 00:02:20,630 --> 00:02:23,730 nombor sifar melalui 25 untuk mewakili huruf A 52 00:02:23,730 --> 00:02:26,850 melalui Z. Mengapa tidak menggunakan 10 melalui 35 supaya kita dapat menjimatkan 53 00:02:26,850 --> 00:02:29,350 sifar melalui sembilan untuk watak-watak angka? 54 00:02:29,350 --> 00:02:31,590 >> Tiada sebab sebenar, kita hanya memilih apa yang seolah-olah 55 00:02:31,590 --> 00:02:33,770 terbaik untuk kita. 56 00:02:33,770 --> 00:02:37,650 Kembali pada awal 1960-an, ini adalah masalah yang sebenar. 57 00:02:37,650 --> 00:02:39,370 Pengeluar komputer yang berbeza telah menggunakan 58 00:02:39,370 --> 00:02:41,910 skim pengekodan yang berbeza, dan ini komunikasi yang dibuat 59 00:02:41,910 --> 00:02:44,340 antara mesin yang berlainan satu tugas yang sangat sukar. 60 00:02:44,340 --> 00:02:47,810 The American National Standard Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 membentuk sebuah jawatankuasa untuk membangunkan satu skim yang sama. 62 00:02:50,210 --> 00:02:53,780 Dan pada tahun 1963, Amerika Kod Standard untuk Maklumat 63 00:02:53,780 --> 00:02:58,600 Interchange, lebih dikenali sebagai ASCII, dilahirkan. 64 00:02:58,600 --> 00:03:01,360 >> ASCII telah direka sebagai pengekodan tujuh-bit, yang 65 00:03:01,360 --> 00:03:03,800 bermakna bahawa setiap aksara diwakili oleh gabungan 66 00:03:03,800 --> 00:03:06,070 tujuh sifar dan orang-orang. 67 00:03:06,070 --> 00:03:09,670 Dengan kedua-dua nilai yang mungkin, dengan sifar atau satu, bagi setiap 68 00:03:09,670 --> 00:03:14,040 tujuh bit, terdapat dua hingga ketujuh atau 128 69 00:03:14,040 --> 00:03:16,120 aksara yang boleh diwakili dengan ASCII 70 00:03:16,120 --> 00:03:18,140 pengekodan skim. 71 00:03:18,140 --> 00:03:21,480 Jadi 128 aksara bunyi seperti banyak, kan? 72 00:03:21,480 --> 00:03:24,180 Nah, ingat bahawa terdapat 26 huruf kecil dalam 73 00:03:24,180 --> 00:03:29,260 Bahasa Inggeris, satu lagi 26 huruf besar, 10 aksara digit, 74 00:03:29,260 --> 00:03:31,470 32 tanda baca dan aksara khas, 75 00:03:31,470 --> 00:03:33,430 dan satu ruang watak. 76 00:03:33,430 --> 00:03:37,050 >> Yang meletakkan kita pada 95, jadi kita mempunyai 33 aksara lagi bahawa kita 77 00:03:37,050 --> 00:03:38,400 boleh mewakili. 78 00:03:38,400 --> 00:03:39,900 >> Jadi apa yang tinggal? 79 00:03:39,900 --> 00:03:43,130 Nah, dalam zaman pembangunan ASCII, teletip 80 00:03:43,130 --> 00:03:45,080 mesin, yang mesin taip yang digunakan untuk 81 00:03:45,080 --> 00:03:48,040 menghantar mesej di seluruh rangkaian, adalah meluas. 82 00:03:48,040 --> 00:03:50,030 Dan mesin ini mempunyai watak-watak tambahan yang digunakan untuk 83 00:03:50,030 --> 00:03:52,890 mengawal mereka, sebagai contoh, untuk memberitahu mereka apabila bergerak 84 00:03:52,890 --> 00:03:57,620 mencetak kepala ke bawah baris, suapan garis atau kunci barisan baru, 85 00:03:57,620 --> 00:04:00,440 apabila bergerak ke margin kiri, pulangan pengangkutan, 86 00:04:00,440 --> 00:04:04,890 atau hanya kembali utama, dan apabila kembali satu ruang, 87 00:04:04,890 --> 00:04:07,760 backspace watak, dan sebagainya. 88 00:04:07,760 --> 00:04:10,250 >> Aksara ini dipanggil kawalan karakter, dan mereka 89 00:04:10,250 --> 00:04:12,680 membentuk seluruh set ASCII. 90 00:04:12,680 --> 00:04:15,230 Jadi, jika kita melihat jadual ASCII, kita lihat bahawa yang pertama 91 00:04:15,230 --> 00:04:18,800 32 nombor, sifar hingga 31, adalah dikhaskan untuk kawalan 92 00:04:18,800 --> 00:04:20,200 aksara. 93 00:04:20,200 --> 00:04:23,420 Tetapi kita hanya mengatakan bahawa terdapat 33 aksara kawalan. 94 00:04:23,420 --> 00:04:24,780 Apakah perjanjian itu? 95 00:04:24,780 --> 00:04:29,350 Nah, nombor sifar dan 127, yang pertama dan terakhir 96 00:04:29,350 --> 00:04:32,560 Set ASCII, mempunyai corak bit khas, semua sifar dan semua 97 00:04:32,560 --> 00:04:34,710 orang, masing-masing. 98 00:04:34,710 --> 00:04:36,860 >> Para pereka ASCII memutuskan Justeru, 99 00:04:36,860 --> 00:04:39,610 mengekalkan nombor-nombor untuk watak tambahan khas, 100 00:04:39,610 --> 00:04:43,310 iaitu watak batal dan watak DEL. 101 00:04:43,310 --> 00:04:46,340 Batal dan DEL bertujuan untuk menyunting pita kertas, yang digunakan 102 00:04:46,340 --> 00:04:48,930 untuk menjadi satu cara yang biasa menyimpan data. 103 00:04:48,930 --> 00:04:51,850 Pita kertas adalah benar-benar hanya satu jalur kertas panjang, dan pada 104 00:04:51,850 --> 00:04:53,760 berkala pada pita, anda akan menumbuk 105 00:04:53,760 --> 00:04:55,430 lubang untuk menyimpan data. 106 00:04:55,430 --> 00:04:58,720 Bergantung kepada lebar pita, setiap lajur akan 107 00:04:58,720 --> 00:05:03,186 dapat menampung lima, enam, tujuh, atau lapan bit. 108 00:05:03,186 --> 00:05:05,930 >> Untuk mewakili sedikit sifar, anda akan berbuat apa-apa untuk pita, anda mahu 109 00:05:05,930 --> 00:05:07,930 hanya meninggalkan ruang kosong. 110 00:05:07,930 --> 00:05:10,560 Untuk satu sedikit, anda akan menumbuk lubang. 111 00:05:10,560 --> 00:05:12,980 Watak nol hanya akan meninggalkan ruang kosong, 112 00:05:12,980 --> 00:05:14,480 menunjukkan semua sifar. 113 00:05:14,480 --> 00:05:17,250 Dan watak DEL akan menumbuk ruangan yang penuh lubang 114 00:05:17,250 --> 00:05:18,550 melalui pita anda. 115 00:05:18,550 --> 00:05:21,300 Hasilnya, anda boleh menggunakan watak DEL untuk memadam 116 00:05:21,300 --> 00:05:22,440 maklumat. 117 00:05:22,440 --> 00:05:25,060 Bayangkan mengambil berisi keluar undi pilihan raya dan kemudian 118 00:05:25,060 --> 00:05:27,180 menumbuk semua lubang unpunched. 119 00:05:27,180 --> 00:05:29,410 >> Anda membatalkan undi kerana ia adalah mustahil untuk 120 00:05:29,410 --> 00:05:31,820 memberitahu apa undi asal. 121 00:05:31,820 --> 00:05:34,720 Walaupun watak DEL masih digunakan adalah moden 122 00:05:34,720 --> 00:05:37,980 Padam utama, watak nol datang untuk digunakan sebagai 123 00:05:37,980 --> 00:05:40,010 watak penamatan untuk rentetan C dan 124 00:05:40,010 --> 00:05:41,990 beberapa format data lain. 125 00:05:41,990 --> 00:05:45,140 Anda mungkin tahu ia sebagai watak backslash sifar, 126 00:05:45,140 --> 00:05:47,720 kerana itulah bagaimana kita mewakili secara bertulis. 127 00:05:47,720 --> 00:05:49,580 Jadi kembali kepada jadual ASCII kami. 128 00:05:49,580 --> 00:05:52,770 Selepas 32 aksara kawalan pertama datang daripada 95 129 00:05:52,770 --> 00:05:54,280 watak dicetak. 130 00:05:54,280 --> 00:05:55,800 >> Terdapat keputusan Pasangan reka bentuk sejuk bernilai 131 00:05:55,800 --> 00:05:57,330 bercakap tentang di sini. 132 00:05:57,330 --> 00:06:00,810 Pertama, watak-watak angka perpuluhan, sifar melalui sembilan, 133 00:06:00,810 --> 00:06:04,050 sesuai dengan nombor 48 hingga 57, yang seolah-olah 134 00:06:04,050 --> 00:06:06,980 seberapa sehingga kita melihat nombor 48 melalui 57 135 00:06:06,980 --> 00:06:09,080 ditulis dalam notasi binari. 136 00:06:09,080 --> 00:06:11,530 Jika kita berbuat demikian, maka kita lihat bahawa watak digit, 137 00:06:11,530 --> 00:06:22,320 sifar, sepadan dengan 0110000, satu peta 0110001, dua hingga 138 00:06:22,320 --> 00:06:26,640 0110010, dan sebagainya. 139 00:06:26,640 --> 00:06:27,950 Lihat corak? 140 00:06:27,950 --> 00:06:30,170 Setiap watak angka dipetakan kepada sepadan 141 00:06:30,170 --> 00:06:35,170 bersamaan dalam notasi perduaan, dengan awalan 011. 142 00:06:35,170 --> 00:06:38,820 Sehingga seterusnya, anda notis bahawa huruf besar bermula pada 65, 143 00:06:38,820 --> 00:06:41,310 dengan huruf besar A, tetapi huruf kecil 144 00:06:41,310 --> 00:06:43,010 tidak bermula sehingga 97. 145 00:06:43,010 --> 00:06:45,580 Jadi, terdapat 32 ruang di antara. 146 00:06:45,580 --> 00:06:47,000 Itu seolah-olah pelik. 147 00:06:47,000 --> 00:06:49,500 Mereka adalah hanya 26 huruf dalam abjad. 148 00:06:49,500 --> 00:06:51,410 >> Mengapa mereka berpecah seperti ini? 149 00:06:51,410 --> 00:06:53,960 Sekali lagi, jika kita melihat perwakilan binari, kita boleh 150 00:06:53,960 --> 00:06:55,230 lihat corak. 151 00:06:55,230 --> 00:07:01,360 Huruf besar A diwakili oleh 1000001, dan huruf kecil adalah 152 00:07:01,360 --> 00:07:05,810 diwakili oleh 1100001. 153 00:07:05,810 --> 00:07:12,770 Huruf besar B diwakili oleh 1000010, dan b huruf kecil 154 00:07:12,770 --> 00:07:17,280 diwakili oleh 1100010. 155 00:07:17,280 --> 00:07:19,440 Anda boleh memberitahu apa yang berlaku di sini? 156 00:07:19,440 --> 00:07:22,470 Bit yang kedua dari kiri, dalam dua kepada 157 00:07:22,470 --> 00:07:26,510 perlima, untuk kedudukan 32ths, 0 untuk semua daripada huruf besar 158 00:07:26,510 --> 00:07:30,120 huruf, dan 1 untuk semua huruf kecil. 159 00:07:30,120 --> 00:07:33,130 >> Ini bermakna menukar dari huruf besar kepada huruf kecil, dan 160 00:07:33,130 --> 00:07:36,000 sebaliknya, adalah satu perkara flip sedikit mudah. 161 00:07:36,000 --> 00:07:38,380 Jadi yang membawa kita kepada akhir jadual ASCII. 162 00:07:38,380 --> 00:07:40,700 Bolehkah anda berfikir apa-apa yang kita terlupa? 163 00:07:40,700 --> 00:07:42,510 Nah, apa tentang enye Sepanyol, atau 164 00:07:42,510 --> 00:07:44,630 Yunani atau huruf Cyrillic? 165 00:07:44,630 --> 00:07:46,610 Dan bagaimana watak-watak tentang Cina? 166 00:07:46,610 --> 00:07:49,050 Terdapat banyak itu telah ditinggalkan daripada ASCII. 167 00:07:49,050 --> 00:07:51,920 Walau bagaimanapun, satu lagi standard Unicode dipanggil telah 168 00:07:51,920 --> 00:07:53,040 dibangunkan untuk meliputi semua ini 169 00:07:53,040 --> 00:07:54,840 watak dan banyak lagi. 170 00:07:54,840 --> 00:07:57,040 >> Tetapi itulah satu subjek untuk masa yang lain. 171 00:07:57,040 --> 00:07:58,500 Nama saya adalah Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Ini adalah CS50.