[Powered by Google Translate] NATE Hardison: Dalam video pada biner, kita menunjukkan bagaimana merupakan himpunan bilangan bulat, dari nol ke atas, hanya menggunakan angka nol dan satu. Dalam video ini, kita akan menggunakan notasi biner mewakili teks, huruf dan semacamnya, juga. Mengapa kita repot-repot untuk melakukan hal ini? Nah, di bawah tenda, komputer hanya benar-benar memahami angka satu dan nol, angka biner, karena ini dapat diwakili dengan mudah dengan hal-hal elektromagnetik. Misalnya, pikirkan memori komputer Anda seperti yang lama string bola lampu, dimana setiap individu bohlam mewakili nol jika itu dimatikan, dan satu jika itu dihidupkan. Alih-alih menggunakan sekelompok bola lampu, beberapa modern memori hal ini menggunakan kapasitor yang memegang rendah bertanggung jawab untuk mewakili nol dan biaya tinggi untuk mewakili satu. Ada teknik lain juga. Lagi pula, dalam rangka untuk menyimpan apa pun di memori, kita perlu pertama mengubahnya menjadi sesuatu yang dapat benar-benar terwakili dalam perangkat keras fisik. Jadi mari kita berpikir tentang bagaimana kita bisa merepresentasikan huruf dengan biner notasi. Dalam bahasa Inggris, kita punya 26 huruf abjad dalam, A, B, C, D, dan seterusnya, sampai Z. Kita melalui dapat menetapkan masing-masing dari ini nomor, katakanlah nol sampai 25, dan kemudian menggunakan notasi biner, kita dapat mewakili setiap nomor sebagai urutan nol dan satu. Itu tidak terlalu buruk. Namun, itu tidak akan cukup. Dengan sistem ini, kita tidak bisa benar-benar membedakan antara atas dan huruf kecil. Jika kita ingin komputer kita untuk dapat membedakan antara dua kasus, maka kita membutuhkan 26 angka tambahan. Dan bagaimana dengan periode, koma, dan tanda baca lainnya? Pada keyboard saya, saya punya 32 dari mereka, termasuk semua karakter khusus seperti tanda sisipan dan ampersand. Itu bukan termasuk karakter digit, nol sampai sembilan, karena kita masih ingin untuk dapat mengetikkan angka dalam desimal notasi pada komputer, bahkan jika komputer hanya benar-benar memahami notasi biner di bawah tenda. Dan akhirnya, kita akan perlu untuk mewakili karakter spasi sehingga Space Bar yang kami bekerja. Jadi mencari tahu bagaimana untuk mewakili teks pada komputer mengambil sedikit lebih dari yang kita mungkin berpikir awalnya. Selain itu, menganggap kita kemudian datang dengan pengkodean kita sendiri Skema untuk mewakili karakter sebagai angka. Namun kami memutuskan untuk mengkodekan karakter pasti akan sewenang-wenang, seperti yang kita lihat sebelumnya ketika kita berbicara tentang menggunakan angka nol melalui 25 untuk mewakili huruf A melalui Z. Mengapa tidak menggunakan 10 sampai 35 sehingga kita dapat menghemat nol sampai sembilan untuk karakter digit? Tidak ada alasan yang nyata, kita hanya memilih apapun tampak terbaik untuk kita. Kembali pada awal 1960-an, ini adalah masalah nyata. Produsen komputer yang berbeda menggunakan berbeda encoding skema, dan ini membuat komunikasi antara mesin yang berbeda tugas yang sangat sulit. The American National Standards Institute, ANSI, membentuk sebuah komite untuk mengembangkan skema umum. Dan pada tahun 1963, Kode Standar Amerika untuk Informasi Interchange, lebih dikenal sebagai ASCII, lahir. ASCII dirancang sebagai pengkodean tujuh-bit, yang berarti bahwa masing-masing karakter diwakili oleh kombinasi tujuh angka satu dan nol. Dengan dua nilai yang mungkin, nol atau satu, untuk setiap dari tujuh bit, ada dua kepada ketujuh atau 128 karakter yang dapat diwakili dengan ASCII encoding skema. Jadi 128 karakter terdengar seperti banyak, kan? Nah, ingat bahwa ada 26 huruf kecil di Inggris, yang lain 26 huruf besar, karakter 10 digit, 32 tanda baca dan karakter khusus, dan satu karakter spasi. Yang menempatkan kami di 95, sehingga kita memiliki 33 karakter yang kita dapat mewakili. Jadi apa yang tersisa? Nah, pada hari-hari pengembangan ASCII, teletype mesin, yaitu mesin tik yang digunakan untuk mengirim pesan melalui jaringan, yang meluas. Dan mesin ini memiliki karakter tambahan yang digunakan untuk mengendalikan mereka, misalnya, untuk memberitahu mereka kapan harus memindahkan mencetak kepala di bawah garis, feed line atau kunci baris baru, kapan harus pindah ke margin kiri, carriage return, atau hanya mengembalikan kunci, dan kapan harus mundur satu ruang, backspace karakter, dan sebagainya. Karakter ini disebut karakter kontrol, dan mereka merupakan sisa set ASCII. Jadi jika kita melihat tabel ASCII, kita melihat bahwa yang pertama 32 angka, nol sampai 31, dicadangkan untuk kontrol karakter. Tapi kami hanya mengatakan bahwa ada 33 karakter kontrol. Apa masalahnya? Nah, nomor nol dan 127, yang pertama dan terakhir dari ASCII set, memiliki pola bit khusus, semua nol dan semua yang masing-masing. Para desainer dari ASCII memutuskan, karena itu, untuk melestarikan angka-angka untuk karakter khusus tambahan, yaitu karakter null dan karakter DEL. Null dan DEL dimaksudkan untuk mengedit pita kertas, yang digunakan menjadi cara yang umum menyimpan data. Pita kertas itu benar-benar hanya strip panjang kertas, dan pada interval reguler di rekaman itu, Anda akan memukul lubang untuk menyimpan data. Tergantung pada lebar pita, setiap kolom akan mampu menampung lima, enam, tujuh, atau delapan bit. Untuk mewakili bit nol, Anda akan melakukan apapun untuk rekaman, anda akan hanya meninggalkan ruang kosong. Untuk sedikit satu, Anda akan membuat lubang. Karakter null hanya akan meninggalkan kolom kosong, menunjukkan semua nol. Dan karakter DEL akan memukul kolom penuh lubang melalui rekaman Anda. Sebagai hasilnya, Anda bisa menggunakan karakter DEL untuk menghapus Informasi. Bayangkan mengambil suara pemilu diisi-out dan kemudian meninju semua lubang unpunched. Anda membatalkan pemungutan suara karena tidak mungkin untuk mengatakan apa suara asli adalah. Sementara karakter DEL masih digunakan adalah modern Hapus kunci, karakter null datang yang akan digunakan sebagai pemutusan karakter untuk string C dan beberapa format data lainnya. Anda mungkin tahu itu sebagai karakter backslash nol, karena itulah bagaimana kita merepresentasikan secara tertulis. Jadi kembali ke meja ASCII kami. Setelah 32 karakter pertama kontrol datang 95 dicetak karakter. Ada beberapa keputusan desain keren senilai bicarakan di sini. Pertama, karakter digit desimal, nol sampai sembilan, sesuai dengan angka 48 sampai 57, yang tampaknya biasa-biasa saja sampai kita melihat angka-angka 48 sampai 57 ditulis dalam notasi biner. Jika kita melakukan itu, maka kita melihat bahwa karakter digit, nol, sesuai dengan 0110000, satu peta untuk 0110001, dua sampai 0110010, dan sebagainya. Lihat pola? Setiap karakter digit dipetakan ke yang sesuai setara dalam notasi biner, diawali dengan 011. Selanjutnya, Anda melihat bahwa huruf besar mulai dari 65, dengan huruf A, tetapi huruf kecil tidak mulai sampai 97. Jadi ada 32 ruang di antara. Yang tampaknya aneh. Mereka hanya 26 huruf dalam alfabet. Mengapa membaginya seperti ini? Sekali lagi, jika kita melihat representasi biner, kita bisa melihat pola. Huruf A diwakili oleh 1000001, dan huruf kecil adalah diwakili oleh 1.100.001. Huruf B diwakili oleh 1000010, dan b huruf kecil yang diwakili oleh 1.100.010. Bisakah Anda ceritakan apa yang terjadi di sini? Bit yang kedua dari kiri, dalam dua ke perlima, untuk posisi 32ths, adalah 0 untuk semua huruf besar surat, dan 1 untuk semua huruf kecil. Itu berarti mengkonversi dari huruf besar untuk huruf kecil, dan sebaliknya, adalah masalah flip sedikit sederhana. Sehingga membawa kita ke ujung meja ASCII. Dapatkah Anda memikirkan apa pun yang kita sudah lupa? Nah, bagaimana dengan enye Spanyol, atau Yunani atau huruf Cyrillic? Dan bagaimana karakter Cina? Ada banyak yang telah ditinggalkan dari ASCII. Namun, lain Unicode disebut standar telah dikembangkan untuk menutupi semua karakter dan banyak lagi. Tapi itu subjek untuk lain waktu. Nama saya adalah Nate Hardison. Ini adalah CS50.