[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.