1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate HARDISON: Sa video sa binary, ipinapakita namin kung paano i- 2 00:00:09,290 --> 00:00:12,540 kumatawan sa hanay ng mga buong numero, mula sa zero sa up, 3 00:00:12,540 --> 00:00:15,110 gamit lamang ang mga digit zero at isa. 4 00:00:15,110 --> 00:00:17,890 Sa video na ito, kami ay pagpunta sa gumamit ng binary notation sa 5 00:00:17,890 --> 00:00:21,160 kumakatawan sa teksto, mga titik at tulad, pati na rin. 6 00:00:21,160 --> 00:00:22,810 >> Bakit namin abala upang gawin ito? 7 00:00:22,810 --> 00:00:25,450 Well, sa ilalim ng hood, ang isang computer lamang talagang 8 00:00:25,450 --> 00:00:29,070 nauunawaan ng mga zero at na, ang binary digit, dahil ang mga 9 00:00:29,070 --> 00:00:32,100 maaaring katawanin ang madaling na may mga electromagnetic bagay. 10 00:00:32,100 --> 00:00:35,040 >> Halimbawa, sa tingin ng memory ng iyong computer tulad ng isang mahabang 11 00:00:35,040 --> 00:00:37,810 string ng liwanag na mga bombilya, kung saan ang bawat indibidwal na bombilya 12 00:00:37,810 --> 00:00:40,680 ay kumakatawan sa isang zero kung ito ay naka-off, at isang 13 00:00:40,680 --> 00:00:42,230 kung ito ay naka-on. 14 00:00:42,230 --> 00:00:44,730 Sa halip ng paggamit ng grupo ng liwanag na mga bombilya, ang ilang mga modernong 15 00:00:44,730 --> 00:00:46,990 memory ito gamit ang mga capacitors na hawak ng isang mababang 16 00:00:46,990 --> 00:00:49,120 singilin sa kumakatawan sa isang zero at ang isang mataas na bayad 17 00:00:49,120 --> 00:00:50,780 kumakatawan sa isang. 18 00:00:50,780 --> 00:00:52,510 >> May iba pang mga diskarte pati na rin. 19 00:00:52,510 --> 00:00:55,500 Pa Rin, upang mag-imbak ng anumang bagay sa memorya, kailangan namin 20 00:00:55,500 --> 00:00:57,590 unang-convert ang mga ito sa isang bagay na maaaring maging aktwal 21 00:00:57,590 --> 00:01:00,140 kinakatawan sa ang pisikal na hardware. 22 00:01:00,140 --> 00:01:02,450 Kaya sabihin isipin ang tungkol sa kung paano namin kumakatawan sa mga titik na may 23 00:01:02,450 --> 00:01:04,230 binary notation. 24 00:01:04,230 --> 00:01:08,141 Sa Ingles, kami ay nakakuha ng 26 mga titik sa alpabetiko, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, at iba pa, hanggang sa pamamagitan Z. Maaari naming italaga sa bawat isa sa 26 00:01:12,930 --> 00:01:16,650 mga numero, sabihin zero sa pamamagitan ng 25, at pagkatapos gamit ang 27 00:01:16,650 --> 00:01:18,880 binary notation, maaari naming kinakatawan ang bawat numero bilang isang 28 00:01:18,880 --> 00:01:20,890 pagkakasunud-sunod ng mga zero at mga. 29 00:01:20,890 --> 00:01:22,420 Iyon ay hindi masyadong masamang. 30 00:01:22,420 --> 00:01:25,050 Gayunpaman, na hindi sapat na. 31 00:01:25,050 --> 00:01:27,680 Sa pamamagitan ng system na ito, hindi tunay na namin maaaring makilala sa pagitan ng 32 00:01:27,680 --> 00:01:29,830 itaas at maliliit na titik. 33 00:01:29,830 --> 00:01:32,140 Kung gusto namin ang aming computer na pagkakaiba sa pagitan ng 34 00:01:32,140 --> 00:01:36,020 ang dalawang mga kaso, pagkatapos ay kailangan namin ng karagdagang 26 mga numero. 35 00:01:36,020 --> 00:01:38,700 At kung ano ang tungkol sa mga tuldok, kuwit, at 36 00:01:38,700 --> 00:01:40,390 iba pang mga punctuation marks? 37 00:01:40,390 --> 00:01:43,560 >> Sa aking keyboard, ako Mayroon 32 ng mga, kabilang ang lahat ng mga 38 00:01:43,560 --> 00:01:46,800 mga espesyal na character tulad ng kareta at ang ampersand. 39 00:01:46,800 --> 00:01:49,700 Na hindi kabilang ang mga digit na mga character, zero pamamagitan siyam, 40 00:01:49,700 --> 00:01:51,840 dahil gusto pa rin namin i-type ang mga numero sa decimal 41 00:01:51,840 --> 00:01:54,840 notation sa computer, kahit na ang computer lamang talagang 42 00:01:54,840 --> 00:01:57,830 nauunawaan binary notation sa ilalim ng hood. 43 00:01:57,830 --> 00:02:00,620 >> At sa wakas, makikita namin kailangang kumakatawan sa isang puwang ng character kaya 44 00:02:00,620 --> 00:02:02,450 na aming Space Bar gumagana. 45 00:02:02,450 --> 00:02:04,920 Kaya ang pag-uunawa kung paano upang kumatawan ang teksto sa computer 46 00:02:04,920 --> 00:02:08,400 tumatagal ng kaunti pa kaysa sa maaari naming naisip sa una. 47 00:02:08,400 --> 00:02:11,710 Bukod pa rito, ipagpalagay namin at pagkatapos ay hanggang sa aming sariling pag-encode 48 00:02:11,710 --> 00:02:14,560 scheme upang kumatawan ng mga character ng mga numero. 49 00:02:14,560 --> 00:02:17,470 Gayunpaman magpasya namin upang i-encode ang mga character ay hindi maaaring hindi maging 50 00:02:17,470 --> 00:02:20,630 arbitrary, tulad ng nakita natin mas maaga kapag usapan natin ang tungkol sa paggamit ng 51 00:02:20,630 --> 00:02:23,730 numero zero sa pamamagitan ng 25 upang kumatawan ang mga titik A 52 00:02:23,730 --> 00:02:26,850 sa pamamagitan Z. Bakit hindi gamitin ang 10 sa pamamagitan ng 35 upang maaari naming i-save 53 00:02:26,850 --> 00:02:29,350 zero sa pamamagitan ng siyam na para sa mga digit na mga character? 54 00:02:29,350 --> 00:02:31,590 >> Walang tunay na dahilan, pinili lang namin ang anumang tila 55 00:02:31,590 --> 00:02:33,770 pinakamahusay na para sa amin. 56 00:02:33,770 --> 00:02:37,650 Bumalik sa unang bahagi ng 1960, ito ay isang tunay na problema. 57 00:02:37,650 --> 00:02:39,370 Ibang computer tagagawa ay gumagamit ng 58 00:02:39,370 --> 00:02:41,910 iba't ibang mga scheme ng pag-encode, at ito ay ginawa na komunikasyon 59 00:02:41,910 --> 00:02:44,340 sa pagitan ng iba't ibang machine isang mahirap na gawain. 60 00:02:44,340 --> 00:02:47,810 Ang American Pambansang Pamantayan Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 nabuo isang komite upang bumuo ng isang karaniwang scheme. 62 00:02:50,210 --> 00:02:53,780 At noong 1963, sa American Standard Code para sa Impormasyon 63 00:02:53,780 --> 00:02:58,600 Interchange, mas karaniwang kilala bilang ASCII, ay ipinanganak. 64 00:02:58,600 --> 00:03:01,360 >> ASCII ay dinisenyo bilang isang pitong-bit pag-encode, na 65 00:03:01,360 --> 00:03:03,800 ay nangangahulugan na ang bawat karakter ay kinakatawan sa pamamagitan ng isang kumbinasyon 66 00:03:03,800 --> 00:03:06,070 ng pitong zero at mga. 67 00:03:06,070 --> 00:03:09,670 Na may mga dalawang posibleng halaga, zero o isa, para sa bawat 68 00:03:09,670 --> 00:03:14,040 ng pitong bit, mayroong dalawang sa ikapitong o 128 69 00:03:14,040 --> 00:03:16,120 mga character na maaaring kinakatawan gamit ang ASCII 70 00:03:16,120 --> 00:03:18,140 page-encode scheme. 71 00:03:18,140 --> 00:03:21,480 Kaya 128 character tunog tulad ng maraming, i-right? 72 00:03:21,480 --> 00:03:24,180 Well, tandaan na may 26 maliliit na mga titik sa 73 00:03:24,180 --> 00:03:29,260 Ingles, isa pang 26 mga malalaking titik, 10 digit character, 74 00:03:29,260 --> 00:03:31,470 32 bantas at mga espesyal na character, 75 00:03:31,470 --> 00:03:33,430 at isang espasyo ng character. 76 00:03:33,430 --> 00:03:37,050 >> Na naglalagay sa amin sa 95, kaya namin ng isa pang 33 character namin 77 00:03:37,050 --> 00:03:38,400 maaaring kumatawan. 78 00:03:38,400 --> 00:03:39,900 >> Kaya kung ano ang sa kaliwa? 79 00:03:39,900 --> 00:03:43,130 Well, sa araw ng pagbuo ng ASCII, teletipo 80 00:03:43,130 --> 00:03:45,080 machine, na typewriters na ginagamit upang 81 00:03:45,080 --> 00:03:48,040 magpadala ng mga mensahe sa isang network, ay laganap. 82 00:03:48,040 --> 00:03:50,030 At mga machine ay may karagdagang mga character na ginamit sa 83 00:03:50,030 --> 00:03:52,890 kontrolin ang mga ito, halimbawa, upang sabihin sa kanila kapag upang ilipat ang 84 00:03:52,890 --> 00:03:57,620 i-print ang ulo pababa sa isang linya, ang linya ng feed o bagong linya key, 85 00:03:57,620 --> 00:04:00,440 kapag lumipat sa kaliwang margin, ang carriage return, 86 00:04:00,440 --> 00:04:04,890 o lamang bumalik key, at kapag bumalik ang isang espasyo, ang 87 00:04:04,890 --> 00:04:07,760 backspace karakter, at iba pa. 88 00:04:07,760 --> 00:04:10,250 >> Ang mga character na ito ay tinatawag na kontrol character, at sila 89 00:04:10,250 --> 00:04:12,680 bumubuo sa kabuuan ng ASCII set. 90 00:04:12,680 --> 00:04:15,230 Kaya't kung tiningnan namin sa isang ASCII table, nakita namin na ang unang 91 00:04:15,230 --> 00:04:18,800 32 mga numero, zero sa pamamagitan ng 31, ay nakareserba para sa control 92 00:04:18,800 --> 00:04:20,200 character. 93 00:04:20,200 --> 00:04:23,420 Ngunit sinabi lang namin na may 33 control character. 94 00:04:23,420 --> 00:04:24,780 Ano deal? 95 00:04:24,780 --> 00:04:29,350 Well, ang bilang zero at 127, ang una at huling ng 96 00:04:29,350 --> 00:04:32,560 ASCII set, magkaroon ng espesyal na bit pattern, ang lahat ng mga zero at lahat ng 97 00:04:32,560 --> 00:04:34,710 na, ayon sa pagkakabanggit. 98 00:04:34,710 --> 00:04:36,860 >> Ang mga designer ng ASCII nagpasya, samakatuwid, upang 99 00:04:36,860 --> 00:04:39,610 mapanatili ang mga numerong ito para sa mga dagdag na mga espesyal na character, 100 00:04:39,610 --> 00:04:43,310 lalo ang null karakter at ang del karakter. 101 00:04:43,310 --> 00:04:46,340 Null at Del ay nilayon para sa pag-edit ng tape ng papel, na ginagamit 102 00:04:46,340 --> 00:04:48,930 sa isang karaniwang paraan ng pag-iimbak ng data. 103 00:04:48,930 --> 00:04:51,850 Papel tape ay literal isang mahabang strip ng papel, at sa 104 00:04:51,850 --> 00:04:53,760 regular na mga agwat sa tape, na nais mong Punch 105 00:04:53,760 --> 00:04:55,430 butas upang mag-imbak ng data. 106 00:04:55,430 --> 00:04:58,720 Depende sa lapad ng tape, ang bawat haligi ay 107 00:04:58,720 --> 00:05:03,186 upang tumanggap ng limang, anim, pitong, o walong bits. 108 00:05:03,186 --> 00:05:05,930 >> Upang kumakatawan sa isang zero bit, na nais mong gawin wala sa tape, ikaw ay 109 00:05:05,930 --> 00:05:07,930 lamang mag-iwan ng blangko. 110 00:05:07,930 --> 00:05:10,560 Para sa isang bit, na nais mong Punch hole. 111 00:05:10,560 --> 00:05:12,980 Ang null karakter ay lamang iwan ng blangko haligi, 112 00:05:12,980 --> 00:05:14,480 nagpapahiwatig ang lahat ng mga zero. 113 00:05:14,480 --> 00:05:17,250 At ang del karakter Punch isang haligi na butas-butas 114 00:05:17,250 --> 00:05:18,550 sa pamamagitan ng iyong tape. 115 00:05:18,550 --> 00:05:21,300 Bilang isang resulta, maaari mong gamitin ang del karakter upang tanggalin 116 00:05:21,300 --> 00:05:22,440 impormasyon. 117 00:05:22,440 --> 00:05:25,060 Isipin ang pagkuha ng filled-out balota ng halalan at pagkatapos 118 00:05:25,060 --> 00:05:27,180 pagsuntok lahat ang unpunched butas. 119 00:05:27,180 --> 00:05:29,410 >> Mong magpawalang-bisa sa balota dahil ito ay imposible para sa 120 00:05:29,410 --> 00:05:31,820 sabihin sa kung ano ang orihinal na boto ay. 121 00:05:31,820 --> 00:05:34,720 Habang ang del karakter pa rin ang ginagamit sa modernong 122 00:05:34,720 --> 00:05:37,980 Tanggalin ang key, ang null character na dumating na ginamit bilang 123 00:05:37,980 --> 00:05:40,010 pagwawakas character para sa mga string sa C at 124 00:05:40,010 --> 00:05:41,990 ilang iba pang mga format ng data. 125 00:05:41,990 --> 00:05:45,140 Maaaring kilala mo ang mga ito sa bilang ng character ng backslash zero, 126 00:05:45,140 --> 00:05:47,720 dahil na kung paano kumakatawan namin ito sa sulat. 127 00:05:47,720 --> 00:05:49,580 Kaya-back sa aming ASCII talahanayan. 128 00:05:49,580 --> 00:05:52,770 Matapos ang unang 32 mga character sa control dumating ang 95 129 00:05:52,770 --> 00:05:54,280 napi-print na mga character. 130 00:05:54,280 --> 00:05:55,800 >> May ilang mga cool na disenyo ng mga desisyon sulit 131 00:05:55,800 --> 00:05:57,330 pinag-uusapan dito. 132 00:05:57,330 --> 00:06:00,810 Una, ang mga decimal digit na mga character, zero sa pamamagitan ng siyam, 133 00:06:00,810 --> 00:06:04,050 tumutugma sa numero 48 sa pamamagitan ng 57, na tila 134 00:06:04,050 --> 00:06:06,980 unremarkable hanggang tinitingnan namin ang mga numero 48 sa pamamagitan ng 57 135 00:06:06,980 --> 00:06:09,080 nakasulat sa binary notation. 136 00:06:09,080 --> 00:06:11,530 Kung gagawin namin na, pagkatapos naming makita na ang digit ng character, 137 00:06:11,530 --> 00:06:22,320 zero, tumutugon sa 0110000, isang mapa sa 0110001, dalawa hanggang 138 00:06:22,320 --> 00:06:26,640 0110010, at iba pa. 139 00:06:26,640 --> 00:06:27,950 Tingnan ang pattern? 140 00:06:27,950 --> 00:06:30,170 Bawat digit na character ay nama-map sa kaukulang 141 00:06:30,170 --> 00:06:35,170 katumbas sa binary notation, may prefix na 011. 142 00:06:35,170 --> 00:06:38,820 Susunod, napansin mo na ang mga malalaking titik na nagsisimula sa 65, 143 00:06:38,820 --> 00:06:41,310 may uppercase A, ngunit ang mga maliliit na titik 144 00:06:41,310 --> 00:06:43,010 hindi simulan hanggang 97. 145 00:06:43,010 --> 00:06:45,580 Kaya may 32 mga puwang sa pagitan. 146 00:06:45,580 --> 00:06:47,000 Na tila kakaiba. 147 00:06:47,000 --> 00:06:49,500 Sila ay 26 titik lamang sa alpabeto. 148 00:06:49,500 --> 00:06:51,410 >> Bakit hatiin ito tulad nito? 149 00:06:51,410 --> 00:06:53,960 Muli, kung tiningnan namin sa representasyon ng binary, maaari naming 150 00:06:53,960 --> 00:06:55,230 tingnan ang isang pattern. 151 00:06:55,230 --> 00:07:01,360 Uppercase ay kinakatawan ng 1000001, at lowercase ay 152 00:07:01,360 --> 00:07:05,810 kinakatawan ng 1,100,001. 153 00:07:05,810 --> 00:07:12,770 Uppercase B ay kinakatawan ng 1000010, at lowercase b ay 154 00:07:12,770 --> 00:07:17,280 kinakatawan ng 1,100,010. 155 00:07:17,280 --> 00:07:19,440 Maaari mong sabihin sa kung anong nangyayari sa dito? 156 00:07:19,440 --> 00:07:22,470 Ang bit na ang ikalawang mula sa kaliwa, sa dalawang sa 157 00:07:22,470 --> 00:07:26,510 fifths, 32ths posisyon, ay 0 para sa lahat ng uppercase 158 00:07:26,510 --> 00:07:30,120 mga titik, at 1 para sa lahat ng mga maliliit na titik. 159 00:07:30,120 --> 00:07:33,130 >> Iyon ay nangangahulugang ang nagko-convert mula sa uppercase lowercase, at 160 00:07:33,130 --> 00:07:36,000 kabaligtaran, ay isang bagay ng isang simpleng bit tingnan. 161 00:07:36,000 --> 00:07:38,380 Kaya na pinagsasama sa amin sa dulo ng ASCII table. 162 00:07:38,380 --> 00:07:40,700 Maaari mong isipin ng anumang aming nakalimutan mo ang? 163 00:07:40,700 --> 00:07:42,510 Well, kung ano ang tungkol sa Spanish enye, o ang 164 00:07:42,510 --> 00:07:44,630 Griyego o Cyrillic titik? 165 00:07:44,630 --> 00:07:46,610 At kung paano tungkol sa mga character na Tsino? 166 00:07:46,610 --> 00:07:49,050 May ng maraming na pakaliwa ng ASCII. 167 00:07:49,050 --> 00:07:51,920 Gayunpaman, ang isa pang karaniwang tinatawag na Unicode ay 168 00:07:51,920 --> 00:07:53,040 binuo upang masakop ang lahat ng ito 169 00:07:53,040 --> 00:07:54,840 character at marami pang iba. 170 00:07:54,840 --> 00:07:57,040 >> Ngunit iyon lamang ang isang paksa para sa isa pang oras. 171 00:07:57,040 --> 00:07:58,500 Ang pangalan ko ay Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Ito ay CS50.