1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Hardison: Dalam video pada biner, kita menunjukkan bagaimana 2 00:00:09,290 --> 00:00:12,540 merupakan himpunan bilangan bulat, dari nol ke atas, 3 00:00:12,540 --> 00:00:15,110 hanya menggunakan angka nol dan satu. 4 00:00:15,110 --> 00:00:17,890 Dalam video ini, kita akan menggunakan notasi biner 5 00:00:17,890 --> 00:00:21,160 mewakili teks, huruf dan semacamnya, juga. 6 00:00:21,160 --> 00:00:22,810 >> Mengapa kita repot-repot untuk melakukan hal ini? 7 00:00:22,810 --> 00:00:25,450 Nah, di bawah tenda, komputer hanya benar-benar 8 00:00:25,450 --> 00:00:29,070 memahami angka satu dan nol, angka biner, karena ini 9 00:00:29,070 --> 00:00:32,100 dapat diwakili dengan mudah dengan hal-hal elektromagnetik. 10 00:00:32,100 --> 00:00:35,040 >> Misalnya, pikirkan memori komputer Anda seperti yang lama 11 00:00:35,040 --> 00:00:37,810 string bola lampu, dimana setiap individu bohlam 12 00:00:37,810 --> 00:00:40,680 mewakili nol jika itu dimatikan, dan satu 13 00:00:40,680 --> 00:00:42,230 jika itu dihidupkan. 14 00:00:42,230 --> 00:00:44,730 Alih-alih menggunakan sekelompok bola lampu, beberapa modern 15 00:00:44,730 --> 00:00:46,990 memori hal ini menggunakan kapasitor yang memegang rendah 16 00:00:46,990 --> 00:00:49,120 bertanggung jawab untuk mewakili nol dan biaya tinggi 17 00:00:49,120 --> 00:00:50,780 untuk mewakili satu. 18 00:00:50,780 --> 00:00:52,510 >> Ada teknik lain juga. 19 00:00:52,510 --> 00:00:55,500 Lagi pula, dalam rangka untuk menyimpan apa pun di memori, kita perlu 20 00:00:55,500 --> 00:00:57,590 pertama mengubahnya menjadi sesuatu yang dapat benar-benar 21 00:00:57,590 --> 00:01:00,140 terwakili dalam perangkat keras fisik. 22 00:01:00,140 --> 00:01:02,450 Jadi mari kita berpikir tentang bagaimana kita bisa merepresentasikan huruf dengan 23 00:01:02,450 --> 00:01:04,230 biner notasi. 24 00:01:04,230 --> 00:01:08,141 Dalam bahasa Inggris, kita punya 26 huruf abjad dalam, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, dan seterusnya, sampai Z. Kita melalui dapat menetapkan masing-masing dari 26 00:01:12,930 --> 00:01:16,650 ini nomor, katakanlah nol sampai 25, dan kemudian menggunakan 27 00:01:16,650 --> 00:01:18,880 notasi biner, kita dapat mewakili setiap nomor sebagai 28 00:01:18,880 --> 00:01:20,890 urutan nol dan satu. 29 00:01:20,890 --> 00:01:22,420 Itu tidak terlalu buruk. 30 00:01:22,420 --> 00:01:25,050 Namun, itu tidak akan cukup. 31 00:01:25,050 --> 00:01:27,680 Dengan sistem ini, kita tidak bisa benar-benar membedakan antara 32 00:01:27,680 --> 00:01:29,830 atas dan huruf kecil. 33 00:01:29,830 --> 00:01:32,140 Jika kita ingin komputer kita untuk dapat membedakan antara 34 00:01:32,140 --> 00:01:36,020 dua kasus, maka kita membutuhkan 26 angka tambahan. 35 00:01:36,020 --> 00:01:38,700 Dan bagaimana dengan periode, koma, dan 36 00:01:38,700 --> 00:01:40,390 tanda baca lainnya? 37 00:01:40,390 --> 00:01:43,560 >> Pada keyboard saya, saya punya 32 dari mereka, termasuk semua 38 00:01:43,560 --> 00:01:46,800 karakter khusus seperti tanda sisipan dan ampersand. 39 00:01:46,800 --> 00:01:49,700 Itu bukan termasuk karakter digit, nol sampai sembilan, 40 00:01:49,700 --> 00:01:51,840 karena kita masih ingin untuk dapat mengetikkan angka dalam desimal 41 00:01:51,840 --> 00:01:54,840 notasi pada komputer, bahkan jika komputer hanya benar-benar 42 00:01:54,840 --> 00:01:57,830 memahami notasi biner di bawah tenda. 43 00:01:57,830 --> 00:02:00,620 >> Dan akhirnya, kita akan perlu untuk mewakili karakter spasi sehingga 44 00:02:00,620 --> 00:02:02,450 Space Bar yang kami bekerja. 45 00:02:02,450 --> 00:02:04,920 Jadi mencari tahu bagaimana untuk mewakili teks pada komputer 46 00:02:04,920 --> 00:02:08,400 mengambil sedikit lebih dari yang kita mungkin berpikir awalnya. 47 00:02:08,400 --> 00:02:11,710 Selain itu, menganggap kita kemudian datang dengan pengkodean kita sendiri 48 00:02:11,710 --> 00:02:14,560 Skema untuk mewakili karakter sebagai angka. 49 00:02:14,560 --> 00:02:17,470 Namun kami memutuskan untuk mengkodekan karakter pasti akan 50 00:02:17,470 --> 00:02:20,630 sewenang-wenang, seperti yang kita lihat sebelumnya ketika kita berbicara tentang menggunakan 51 00:02:20,630 --> 00:02:23,730 angka nol melalui 25 untuk mewakili huruf A 52 00:02:23,730 --> 00:02:26,850 melalui Z. Mengapa tidak menggunakan 10 sampai 35 sehingga kita dapat menghemat 53 00:02:26,850 --> 00:02:29,350 nol sampai sembilan untuk karakter digit? 54 00:02:29,350 --> 00:02:31,590 >> Tidak ada alasan yang nyata, kita hanya memilih apapun tampak 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 nyata. 57 00:02:37,650 --> 00:02:39,370 Produsen komputer yang berbeda menggunakan 58 00:02:39,370 --> 00:02:41,910 berbeda encoding skema, dan ini membuat komunikasi 59 00:02:41,910 --> 00:02:44,340 antara mesin yang berbeda tugas yang sangat sulit. 60 00:02:44,340 --> 00:02:47,810 The American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 membentuk sebuah komite untuk mengembangkan skema umum. 62 00:02:50,210 --> 00:02:53,780 Dan pada tahun 1963, Kode Standar Amerika untuk Informasi 63 00:02:53,780 --> 00:02:58,600 Interchange, lebih dikenal sebagai ASCII, lahir. 64 00:02:58,600 --> 00:03:01,360 >> ASCII dirancang sebagai pengkodean tujuh-bit, yang 65 00:03:01,360 --> 00:03:03,800 berarti bahwa masing-masing karakter diwakili oleh kombinasi 66 00:03:03,800 --> 00:03:06,070 tujuh angka satu dan nol. 67 00:03:06,070 --> 00:03:09,670 Dengan dua nilai yang mungkin, nol atau satu, untuk setiap 68 00:03:09,670 --> 00:03:14,040 dari tujuh bit, ada dua kepada ketujuh atau 128 69 00:03:14,040 --> 00:03:16,120 karakter yang dapat diwakili dengan ASCII 70 00:03:16,120 --> 00:03:18,140 encoding skema. 71 00:03:18,140 --> 00:03:21,480 Jadi 128 karakter terdengar seperti banyak, kan? 72 00:03:21,480 --> 00:03:24,180 Nah, ingat bahwa ada 26 huruf kecil di 73 00:03:24,180 --> 00:03:29,260 Inggris, yang lain 26 huruf besar, karakter 10 digit, 74 00:03:29,260 --> 00:03:31,470 32 tanda baca dan karakter khusus, 75 00:03:31,470 --> 00:03:33,430 dan satu karakter spasi. 76 00:03:33,430 --> 00:03:37,050 >> Yang menempatkan kami di 95, sehingga kita memiliki 33 karakter yang kita 77 00:03:37,050 --> 00:03:38,400 dapat mewakili. 78 00:03:38,400 --> 00:03:39,900 >> Jadi apa yang tersisa? 79 00:03:39,900 --> 00:03:43,130 Nah, pada hari-hari pengembangan ASCII, teletype 80 00:03:43,130 --> 00:03:45,080 mesin, yaitu mesin tik yang digunakan untuk 81 00:03:45,080 --> 00:03:48,040 mengirim pesan melalui jaringan, yang meluas. 82 00:03:48,040 --> 00:03:50,030 Dan mesin ini memiliki karakter tambahan yang digunakan untuk 83 00:03:50,030 --> 00:03:52,890 mengendalikan mereka, misalnya, untuk memberitahu mereka kapan harus memindahkan 84 00:03:52,890 --> 00:03:57,620 mencetak kepala di bawah garis, feed line atau kunci baris baru, 85 00:03:57,620 --> 00:04:00,440 kapan harus pindah ke margin kiri, carriage return, 86 00:04:00,440 --> 00:04:04,890 atau hanya mengembalikan kunci, dan kapan harus mundur satu ruang, 87 00:04:04,890 --> 00:04:07,760 backspace karakter, dan sebagainya. 88 00:04:07,760 --> 00:04:10,250 >> Karakter ini disebut karakter kontrol, dan mereka 89 00:04:10,250 --> 00:04:12,680 merupakan sisa set ASCII. 90 00:04:12,680 --> 00:04:15,230 Jadi jika kita melihat tabel ASCII, kita melihat bahwa yang pertama 91 00:04:15,230 --> 00:04:18,800 32 angka, nol sampai 31, dicadangkan untuk kontrol 92 00:04:18,800 --> 00:04:20,200 karakter. 93 00:04:20,200 --> 00:04:23,420 Tapi kami hanya mengatakan bahwa ada 33 karakter kontrol. 94 00:04:23,420 --> 00:04:24,780 Apa masalahnya? 95 00:04:24,780 --> 00:04:29,350 Nah, nomor nol dan 127, yang pertama dan terakhir dari 96 00:04:29,350 --> 00:04:32,560 ASCII set, memiliki pola bit khusus, semua nol dan semua 97 00:04:32,560 --> 00:04:34,710 yang masing-masing. 98 00:04:34,710 --> 00:04:36,860 >> Para desainer dari ASCII memutuskan, karena itu, untuk 99 00:04:36,860 --> 00:04:39,610 melestarikan angka-angka untuk karakter khusus tambahan, 100 00:04:39,610 --> 00:04:43,310 yaitu karakter null dan karakter DEL. 101 00:04:43,310 --> 00:04:46,340 Null dan DEL dimaksudkan untuk mengedit pita kertas, yang digunakan 102 00:04:46,340 --> 00:04:48,930 menjadi cara yang umum menyimpan data. 103 00:04:48,930 --> 00:04:51,850 Pita kertas itu benar-benar hanya strip panjang kertas, dan pada 104 00:04:51,850 --> 00:04:53,760 interval reguler di rekaman itu, Anda akan memukul 105 00:04:53,760 --> 00:04:55,430 lubang untuk menyimpan data. 106 00:04:55,430 --> 00:04:58,720 Tergantung pada lebar pita, setiap kolom akan 107 00:04:58,720 --> 00:05:03,186 mampu menampung lima, enam, tujuh, atau delapan bit. 108 00:05:03,186 --> 00:05:05,930 >> Untuk mewakili bit nol, Anda akan melakukan apapun untuk rekaman, anda akan 109 00:05:05,930 --> 00:05:07,930 hanya meninggalkan ruang kosong. 110 00:05:07,930 --> 00:05:10,560 Untuk sedikit satu, Anda akan membuat lubang. 111 00:05:10,560 --> 00:05:12,980 Karakter null hanya akan meninggalkan kolom kosong, 112 00:05:12,980 --> 00:05:14,480 menunjukkan semua nol. 113 00:05:14,480 --> 00:05:17,250 Dan karakter DEL akan memukul kolom penuh lubang 114 00:05:17,250 --> 00:05:18,550 melalui rekaman Anda. 115 00:05:18,550 --> 00:05:21,300 Sebagai hasilnya, Anda bisa menggunakan karakter DEL untuk menghapus 116 00:05:21,300 --> 00:05:22,440 Informasi. 117 00:05:22,440 --> 00:05:25,060 Bayangkan mengambil suara pemilu diisi-out dan kemudian 118 00:05:25,060 --> 00:05:27,180 meninju semua lubang unpunched. 119 00:05:27,180 --> 00:05:29,410 >> Anda membatalkan pemungutan suara karena tidak mungkin untuk 120 00:05:29,410 --> 00:05:31,820 mengatakan apa suara asli adalah. 121 00:05:31,820 --> 00:05:34,720 Sementara karakter DEL masih digunakan adalah modern 122 00:05:34,720 --> 00:05:37,980 Hapus kunci, karakter null datang yang akan digunakan sebagai 123 00:05:37,980 --> 00:05:40,010 pemutusan karakter untuk string C dan 124 00:05:40,010 --> 00:05:41,990 beberapa format data lainnya. 125 00:05:41,990 --> 00:05:45,140 Anda mungkin tahu itu sebagai karakter backslash nol, 126 00:05:45,140 --> 00:05:47,720 karena itulah bagaimana kita merepresentasikan secara tertulis. 127 00:05:47,720 --> 00:05:49,580 Jadi kembali ke meja ASCII kami. 128 00:05:49,580 --> 00:05:52,770 Setelah 32 karakter pertama kontrol datang 95 129 00:05:52,770 --> 00:05:54,280 dicetak karakter. 130 00:05:54,280 --> 00:05:55,800 >> Ada beberapa keputusan desain keren senilai 131 00:05:55,800 --> 00:05:57,330 bicarakan di sini. 132 00:05:57,330 --> 00:06:00,810 Pertama, karakter digit desimal, nol sampai sembilan, 133 00:06:00,810 --> 00:06:04,050 sesuai dengan angka 48 sampai 57, yang tampaknya 134 00:06:04,050 --> 00:06:06,980 biasa-biasa saja sampai kita melihat angka-angka 48 sampai 57 135 00:06:06,980 --> 00:06:09,080 ditulis dalam notasi biner. 136 00:06:09,080 --> 00:06:11,530 Jika kita melakukan itu, maka kita melihat bahwa karakter digit, 137 00:06:11,530 --> 00:06:22,320 nol, sesuai dengan 0110000, satu peta untuk 0110001, dua sampai 138 00:06:22,320 --> 00:06:26,640 0110010, dan sebagainya. 139 00:06:26,640 --> 00:06:27,950 Lihat pola? 140 00:06:27,950 --> 00:06:30,170 Setiap karakter digit dipetakan ke yang sesuai 141 00:06:30,170 --> 00:06:35,170 setara dalam notasi biner, diawali dengan 011. 142 00:06:35,170 --> 00:06:38,820 Selanjutnya, Anda melihat bahwa huruf besar mulai dari 65, 143 00:06:38,820 --> 00:06:41,310 dengan huruf A, tetapi huruf kecil 144 00:06:41,310 --> 00:06:43,010 tidak mulai sampai 97. 145 00:06:43,010 --> 00:06:45,580 Jadi ada 32 ruang di antara. 146 00:06:45,580 --> 00:06:47,000 Yang tampaknya aneh. 147 00:06:47,000 --> 00:06:49,500 Mereka hanya 26 huruf dalam alfabet. 148 00:06:49,500 --> 00:06:51,410 >> Mengapa membaginya seperti ini? 149 00:06:51,410 --> 00:06:53,960 Sekali lagi, jika kita melihat representasi biner, kita bisa 150 00:06:53,960 --> 00:06:55,230 melihat pola. 151 00:06:55,230 --> 00:07:01,360 Huruf A diwakili oleh 1000001, dan huruf kecil adalah 152 00:07:01,360 --> 00:07:05,810 diwakili oleh 1.100.001. 153 00:07:05,810 --> 00:07:12,770 Huruf B diwakili oleh 1000010, dan b huruf kecil yang 154 00:07:12,770 --> 00:07:17,280 diwakili oleh 1.100.010. 155 00:07:17,280 --> 00:07:19,440 Bisakah Anda ceritakan apa yang terjadi di sini? 156 00:07:19,440 --> 00:07:22,470 Bit yang kedua dari kiri, dalam dua ke 157 00:07:22,470 --> 00:07:26,510 perlima, untuk posisi 32ths, adalah 0 untuk semua huruf besar 158 00:07:26,510 --> 00:07:30,120 surat, dan 1 untuk semua huruf kecil. 159 00:07:30,120 --> 00:07:33,130 >> Itu berarti mengkonversi dari huruf besar untuk huruf kecil, dan 160 00:07:33,130 --> 00:07:36,000 sebaliknya, adalah masalah flip sedikit sederhana. 161 00:07:36,000 --> 00:07:38,380 Sehingga membawa kita ke ujung meja ASCII. 162 00:07:38,380 --> 00:07:40,700 Dapatkah Anda memikirkan apa pun yang kita sudah lupa? 163 00:07:40,700 --> 00:07:42,510 Nah, bagaimana dengan enye Spanyol, 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 karakter Cina? 166 00:07:46,610 --> 00:07:49,050 Ada banyak yang telah ditinggalkan dari ASCII. 167 00:07:49,050 --> 00:07:51,920 Namun, lain Unicode disebut standar telah 168 00:07:51,920 --> 00:07:53,040 dikembangkan untuk menutupi semua 169 00:07:53,040 --> 00:07:54,840 karakter dan banyak lagi. 170 00:07:54,840 --> 00:07:57,040 >> Tapi itu subjek untuk lain waktu. 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.