[Powered by Google Translate] Nate HARDISON: Dalam video pada binari, kita menunjukkan bagaimana untuk mewakili set nombor bulat, dari sifar sehingga, menggunakan hanya digit sifar dan satu. Dalam video ini, kita akan menggunakan notasi binari mewakili teks, surat dan sebagainya, serta. Mengapa kita harus bersusah payah untuk melakukan ini? Nah, di bawah hood, komputer hanya benar-benar memahami sifar dan orang-orang, angka binari, kerana ini boleh diwakili mudah dengan perkara-perkara elektromagnet. Sebagai contoh, berfikir memori komputer anda seperti panjang rentetan mentol, di mana setiap individu mentol mewakili sifar jika ia dimatikan, dan satu jika ia dihidupkan. Sebaliknya menggunakan sekumpulan mentol lampu, beberapa moden ingatan ini menggunakan kapasitor yang memegang rendah mengenakan bayaran untuk mewakili sifar dan caj tinggi untuk mewakili satu. Terdapat teknik-teknik lain juga. Bagaimanapun, dalam usaha untuk menyimpan apa-apa dalam ingatan, kita perlu menukarkan ia menjadi sesuatu yang boleh sebenarnya diwakili dalam perkakasan fizikal. Jadi mari kita berfikir tentang bagaimana kita mungkin mewakili huruf dengan notasi binari. Dalam bahasa Inggeris, kita telah mendapat 26 huruf dalam abjad, A, B, C, D, dan sebagainya, sehingga melalui Z. Kita boleh memberikan setiap seorang daripada ini nombor, katakan sifar melalui 25, dan kemudian menggunakan notasi binari, kita boleh mewakili setiap nombor sebagai jujukan sifar dan orang-orang. Itu tidak terlalu buruk. Walau bagaimanapun, itu tidak akan cukup. Dengan sistem ini, kita sebenarnya tidak boleh membezakan antara huruf besar dan huruf kecil. Jika kita mahu komputer kita untuk dapat membezakan antara kedua-dua kes, maka kita perlu tambahan 26 nombor. Dan apa tentang tempoh, koma, dan tanda baca yang lain? Keyboard saya, saya telah mendapat 32 daripada mereka, termasuk semua aksara khas seperti tanda sisipan dan #: glib. Itu tidak termasuk aksara digit, sifar melalui sembilan, sejak kita masih mahu menjadi mampu untuk menaip nombor dalam perpuluhan notasi di dalam komputer, walaupun komputer hanya benar-benar memahami notasi binari di bawah hood. Dan akhirnya, kita perlukan untuk mewakili aksara ruang supaya Space Bar kami berfungsi. Jadi memikirkan bagaimana untuk mewakili teks pada komputer mengambil masa sedikit lebih daripada kita mungkin berfikir pada mulanya. Selain itu, mengandaikan kita kemudian tampil dengan pengekodan kita sendiri skim untuk mewakili aksara seperti nombor. Walau bagaimanapun, kami memutuskan untuk mengekod aksara pasti akan sewenang-wenangnya, seperti yang kita lihat sebelum ini, apabila kita bercakap tentang menggunakan nombor sifar melalui 25 untuk mewakili huruf A melalui Z. Mengapa tidak menggunakan 10 melalui 35 supaya kita dapat menjimatkan sifar melalui sembilan untuk watak-watak angka? Tiada sebab sebenar, kita hanya memilih apa yang seolah-olah terbaik untuk kita. Kembali pada awal 1960-an, ini adalah masalah yang sebenar. Pengeluar komputer yang berbeza telah menggunakan skim pengekodan yang berbeza, dan ini komunikasi yang dibuat antara mesin yang berlainan satu tugas yang sangat sukar. The American National Standard Institute, ANSI, membentuk sebuah jawatankuasa untuk membangunkan satu skim yang sama. Dan pada tahun 1963, Amerika Kod Standard untuk Maklumat Interchange, lebih dikenali sebagai ASCII, dilahirkan. ASCII telah direka sebagai pengekodan tujuh-bit, yang bermakna bahawa setiap aksara diwakili oleh gabungan tujuh sifar dan orang-orang. Dengan kedua-dua nilai yang mungkin, dengan sifar atau satu, bagi setiap tujuh bit, terdapat dua hingga ketujuh atau 128 aksara yang boleh diwakili dengan ASCII pengekodan skim. Jadi 128 aksara bunyi seperti banyak, kan? Nah, ingat bahawa terdapat 26 huruf kecil dalam Bahasa Inggeris, satu lagi 26 huruf besar, 10 aksara digit, 32 tanda baca dan aksara khas, dan satu ruang watak. Yang meletakkan kita pada 95, jadi kita mempunyai 33 aksara lagi bahawa kita boleh mewakili. Jadi apa yang tinggal? Nah, dalam zaman pembangunan ASCII, teletip mesin, yang mesin taip yang digunakan untuk menghantar mesej di seluruh rangkaian, adalah meluas. Dan mesin ini mempunyai watak-watak tambahan yang digunakan untuk mengawal mereka, sebagai contoh, untuk memberitahu mereka apabila bergerak mencetak kepala ke bawah baris, suapan garis atau kunci barisan baru, apabila bergerak ke margin kiri, pulangan pengangkutan, atau hanya kembali utama, dan apabila kembali satu ruang, backspace watak, dan sebagainya. Aksara ini dipanggil kawalan karakter, dan mereka membentuk seluruh set ASCII. Jadi, jika kita melihat jadual ASCII, kita lihat bahawa yang pertama 32 nombor, sifar hingga 31, adalah dikhaskan untuk kawalan aksara. Tetapi kita hanya mengatakan bahawa terdapat 33 aksara kawalan. Apakah perjanjian itu? Nah, nombor sifar dan 127, yang pertama dan terakhir Set ASCII, mempunyai corak bit khas, semua sifar dan semua orang, masing-masing. Para pereka ASCII memutuskan Justeru, mengekalkan nombor-nombor untuk watak tambahan khas, iaitu watak batal dan watak DEL. Batal dan DEL bertujuan untuk menyunting pita kertas, yang digunakan untuk menjadi satu cara yang biasa menyimpan data. Pita kertas adalah benar-benar hanya satu jalur kertas panjang, dan pada berkala pada pita, anda akan menumbuk lubang untuk menyimpan data. Bergantung kepada lebar pita, setiap lajur akan dapat menampung lima, enam, tujuh, atau lapan bit. Untuk mewakili sedikit sifar, anda akan berbuat apa-apa untuk pita, anda mahu hanya meninggalkan ruang kosong. Untuk satu sedikit, anda akan menumbuk lubang. Watak nol hanya akan meninggalkan ruang kosong, menunjukkan semua sifar. Dan watak DEL akan menumbuk ruangan yang penuh lubang melalui pita anda. Hasilnya, anda boleh menggunakan watak DEL untuk memadam maklumat. Bayangkan mengambil berisi keluar undi pilihan raya dan kemudian menumbuk semua lubang unpunched. Anda membatalkan undi kerana ia adalah mustahil untuk memberitahu apa undi asal. Walaupun watak DEL masih digunakan adalah moden Padam utama, watak nol datang untuk digunakan sebagai watak penamatan untuk rentetan C dan beberapa format data lain. Anda mungkin tahu ia sebagai watak backslash sifar, kerana itulah bagaimana kita mewakili secara bertulis. Jadi kembali kepada jadual ASCII kami. Selepas 32 aksara kawalan pertama datang daripada 95 watak dicetak. Terdapat keputusan Pasangan reka bentuk sejuk bernilai bercakap tentang di sini. Pertama, watak-watak angka perpuluhan, sifar melalui sembilan, sesuai dengan nombor 48 hingga 57, yang seolah-olah seberapa sehingga kita melihat nombor 48 melalui 57 ditulis dalam notasi binari. Jika kita berbuat demikian, maka kita lihat bahawa watak digit, sifar, sepadan dengan 0110000, satu peta 0110001, dua hingga 0110010, dan sebagainya. Lihat corak? Setiap watak angka dipetakan kepada sepadan bersamaan dalam notasi perduaan, dengan awalan 011. Sehingga seterusnya, anda notis bahawa huruf besar bermula pada 65, dengan huruf besar A, tetapi huruf kecil tidak bermula sehingga 97. Jadi, terdapat 32 ruang di antara. Itu seolah-olah pelik. Mereka adalah hanya 26 huruf dalam abjad. Mengapa mereka berpecah seperti ini? Sekali lagi, jika kita melihat perwakilan binari, kita boleh lihat corak. Huruf besar A diwakili oleh 1000001, dan huruf kecil adalah diwakili oleh 1100001. Huruf besar B diwakili oleh 1000010, dan b huruf kecil diwakili oleh 1100010. Anda boleh memberitahu apa yang berlaku di sini? Bit yang kedua dari kiri, dalam dua kepada perlima, untuk kedudukan 32ths, 0 untuk semua daripada huruf besar huruf, dan 1 untuk semua huruf kecil. Ini bermakna menukar dari huruf besar kepada huruf kecil, dan sebaliknya, adalah satu perkara flip sedikit mudah. Jadi yang membawa kita kepada akhir jadual ASCII. Bolehkah anda berfikir apa-apa yang kita terlupa? Nah, apa tentang enye Sepanyol, atau Yunani atau huruf Cyrillic? Dan bagaimana watak-watak tentang Cina? Terdapat banyak itu telah ditinggalkan daripada ASCII. Walau bagaimanapun, satu lagi standard Unicode dipanggil telah dibangunkan untuk meliputi semua ini watak dan banyak lagi. Tetapi itulah satu subjek untuk masa yang lain. Nama saya adalah Nate Hardison. Ini adalah CS50.