1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE HARDISON: Yn y fideo ar binary, rydym yn dangos sut i 2 00:00:09,290 --> 00:00:12,540 cynrychioli set o rifau cyfan, o sero ar i fyny, 3 00:00:12,540 --> 00:00:15,110 ddefnyddio dim ond y digidau sero ac un. 4 00:00:15,110 --> 00:00:17,890 Yn y fideo, rydym yn mynd i ddefnyddio nodiant deuaidd i 5 00:00:17,890 --> 00:00:21,160 cynrychioli testun, llythyron ac o'r fath, yn ogystal. 6 00:00:21,160 --> 00:00:22,810 >> Byddai Pam rydym yn trafferthu i wneud hyn? 7 00:00:22,810 --> 00:00:25,450 Wel, o dan y cwfl, cyfrifiadur dim ond mewn gwirionedd 8 00:00:25,450 --> 00:00:29,070 deall zeros a rhai, y digidau deuaidd, gan fod y rhain 9 00:00:29,070 --> 00:00:32,100 gellir ei gynrychioli yn hawdd gyda phethau electromagnetig. 10 00:00:32,100 --> 00:00:35,040 >> Er enghraifft, ystyriwch y cof eich cyfrifiadur fel hir 11 00:00:35,040 --> 00:00:37,810 gyfres o fylbiau golau, lle mae pob bwlb unigol 12 00:00:37,810 --> 00:00:40,680 yn cynrychioli sero os caiff ei droi i ffwrdd, ac un 13 00:00:40,680 --> 00:00:42,230 os caiff ei droi ymlaen. 14 00:00:42,230 --> 00:00:44,730 Yn hytrach na defnyddio criw o fylbiau golau, rhai modern 15 00:00:44,730 --> 00:00:46,990 cof yn hyn drwy ddefnyddio cynwysyddion sy'n dal isel 16 00:00:46,990 --> 00:00:49,120 codi i gynrychioli sero a thâl uchel 17 00:00:49,120 --> 00:00:50,780 i gynrychioli un. 18 00:00:50,780 --> 00:00:52,510 >> Mae technegau eraill yn ogystal. 19 00:00:52,510 --> 00:00:55,500 Beth bynnag, er mwyn storio unrhyw beth yn y cof, mae angen i ni 20 00:00:55,500 --> 00:00:57,590 1 drosi i fod yn rhywbeth y gellir mewn gwirionedd 21 00:00:57,590 --> 00:01:00,140 cynrychioli yn y caledwedd ffisegol. 22 00:01:00,140 --> 00:01:02,450 Felly, gadewch i ni feddwl am sut y gallai ydym yn eu cynrychioli llythrennau gyda 23 00:01:02,450 --> 00:01:04,230 nodiant deuaidd. 24 00:01:04,230 --> 00:01:08,141 Yn Saesneg, mae gennym 26 o lythyrau yn y nhrefn yr wyddor, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, ac yn y blaen, i fyny drwy Z. Gallwn neilltuo pob un o'r 26 00:01:12,930 --> 00:01:16,650 rhoi'r rhif a, dyweder sero trwy 25, ac yna gan ddefnyddio 27 00:01:16,650 --> 00:01:18,880 nodiant deuaidd, gallwn cynrychioli pob rhif fel 28 00:01:18,880 --> 00:01:20,890 dilyniant o sero a rhai. 29 00:01:20,890 --> 00:01:22,420 Dyw hynny ddim yn rhy ddrwg. 30 00:01:22,420 --> 00:01:25,050 Fodd bynnag, nid yw hynny'n mynd i fod yn ddigon. 31 00:01:25,050 --> 00:01:27,680 Gyda'r system hon, ni allwn mewn gwirionedd gwahaniaethu rhwng 32 00:01:27,680 --> 00:01:29,830 llythyrau llythrennau bach a mawr. 33 00:01:29,830 --> 00:01:32,140 Os ydym am i'n cyfrifiadur i fod yn gallu gwahaniaethu rhwng 34 00:01:32,140 --> 00:01:36,020 y ddau achos, yna mae angen 26 ychwanegol ar niferoedd. 35 00:01:36,020 --> 00:01:38,700 A beth am gyfnodau, atalnodau, a 36 00:01:38,700 --> 00:01:40,390 atalnodi arall? 37 00:01:40,390 --> 00:01:43,560 >> Ar fy bysellfwrdd, mae gen i 32 o'r rheini, gan gynnwys yr holl 38 00:01:43,560 --> 00:01:46,800 nodau arbennig fel y lleolnod a'r ampersand. 39 00:01:46,800 --> 00:01:49,700 Nid yw hynny'n cynnwys y cymeriadau digid, sero drwy naw, 40 00:01:49,700 --> 00:01:51,840 ers i ni dal yn awyddus i fod yn gallu teipio rhifau yn degol 41 00:01:51,840 --> 00:01:54,840 nodiant ar y cyfrifiadur, hyd yn oed os yw'r cyfrifiadur yn unig mewn gwirionedd 42 00:01:54,840 --> 00:01:57,830 yn deall nodiant deuaidd o dan y cwfl. 43 00:01:57,830 --> 00:02:00,620 >> Ac yn olaf, bydd angen i ni gynrychioli cymeriad gofod felly 44 00:02:00,620 --> 00:02:02,450 bod ein Bar Space yn gweithio. 45 00:02:02,450 --> 00:02:04,920 Felly figuring allan sut i gynrychioli testun ar y cyfrifiadur 46 00:02:04,920 --> 00:02:08,400 yn cymryd ychydig yn fwy nag y byddwn wedi meddwl i ddechrau. 47 00:02:08,400 --> 00:02:11,710 Yn ogystal, byddwn wedyn yn cymryd yn ganiataol yn dod i fyny gyda ein hunain amgodio 48 00:02:11,710 --> 00:02:14,560 cynllun i gynrychioli cymeriadau fel rhifau. 49 00:02:14,560 --> 00:02:17,470 Fodd bynnag, byddwn yn penderfynu i amgodio Bydd cymeriadau yn anochel yn 50 00:02:17,470 --> 00:02:20,630 fympwyol, fel y gwelsom yn gynharach pan oeddem yn siarad am ddefnyddio'r 51 00:02:20,630 --> 00:02:23,730 rhifau sero trwy 25 i gynrychioli'r llythrennau A 52 00:02:23,730 --> 00:02:26,850 nid drwy Z. Pam defnyddio 10 trwy 35 er mwyn i ni arbed 53 00:02:26,850 --> 00:02:29,350 sero drwy naw ar gyfer y cymeriadau digid? 54 00:02:29,350 --> 00:02:31,590 >> Does dim rheswm go iawn, rydym yn unig yn dewis beth bynnag oedd yn ymddangos 55 00:02:31,590 --> 00:02:33,770 orau i ni. 56 00:02:33,770 --> 00:02:37,650 Yn ôl yn y 1960au cynnar, roedd hyn yn broblem go iawn. 57 00:02:37,650 --> 00:02:39,370 Gweithgynhyrchwyr cyfrifiadurol gwahanol yn defnyddio 58 00:02:39,370 --> 00:02:41,910 cynlluniau amgodio gwahanol, ac mae hyn yn cyfathrebu a wnaed 59 00:02:41,910 --> 00:02:44,340 rhwng peiriannau gwahanol yn dasg anodd iawn. 60 00:02:44,340 --> 00:02:47,810 Mae'r Safonau Cenedlaethol Sefydliad Americanaidd, ANSI, 61 00:02:47,810 --> 00:02:50,210 ffurfio pwyllgor i ddatblygu cynllun cyffredin. 62 00:02:50,210 --> 00:02:53,780 Ac yn 1963, y Cod Safonol America ar gyfer Gwybodaeth 63 00:02:53,780 --> 00:02:58,600 Roedd Interchange, yn fwy adnabyddus fel ASCII, a anwyd. 64 00:02:58,600 --> 00:03:01,360 >> ASCII wedi'i gynllunio fel amgodiad saith bit, sy'n 65 00:03:01,360 --> 00:03:03,800 yn golygu bod pob cymeriad yn cael ei gynrychioli gan gyfuniad 66 00:03:03,800 --> 00:03:06,070 o saith sero a rhai. 67 00:03:06,070 --> 00:03:09,670 Gyda rhai ddau werth posibl, sero neu un, ar gyfer pob 68 00:03:09,670 --> 00:03:14,040 o'r saith darnau, mae dau i'r seithfed neu'r 128 69 00:03:14,040 --> 00:03:16,120 cymeriadau a all gael ei chynrychioli gyda'r ASCII 70 00:03:16,120 --> 00:03:18,140 amgodio cynllun. 71 00:03:18,140 --> 00:03:21,480 Felly 128 nod swnio fel llawer, dde? 72 00:03:21,480 --> 00:03:24,180 Wel, cofiwch fod yna 26 o lythrennau bach yn 73 00:03:24,180 --> 00:03:29,260 Saesneg, un arall 26 o lythyrau priflythyren, 10 cymeriadau digid, 74 00:03:29,260 --> 00:03:31,470 32 atalnodi a chymeriadau arbennig, 75 00:03:31,470 --> 00:03:33,430 ac un cymeriad gofod. 76 00:03:33,430 --> 00:03:37,050 >> Mae hynny'n ein rhoi ar 95, felly mae gennym arall 33 cymeriadau yr ydym yn 77 00:03:37,050 --> 00:03:38,400 yn gallu cynrychioli. 78 00:03:38,400 --> 00:03:39,900 >> Felly beth sydd ar ôl? 79 00:03:39,900 --> 00:03:43,130 Wel, yn y dyddiau o ddatblygiad ASCII, teletype 80 00:03:43,130 --> 00:03:45,080 peiriannau, sydd yn teipiaduron a ddefnyddir i 81 00:03:45,080 --> 00:03:48,040 anfon negeseuon ar draws rhwydwaith, yn eang. 82 00:03:48,040 --> 00:03:50,030 Ac mae'r rhain yn peiriannau wedi cymeriadau ychwanegol a ddefnyddir i 83 00:03:50,030 --> 00:03:52,890 eu rheoli, er enghraifft, i ddweud wrthynt pryd i symud y 84 00:03:52,890 --> 00:03:57,620 argraffu pen i lawr linell, y bwyd llinell neu allwedd llinell newydd, 85 00:03:57,620 --> 00:04:00,440 pryd i symud i'r ymyl chwith, yn dychwelyd cerbyd, 86 00:04:00,440 --> 00:04:04,890 neu yn syml ddychwelyd allweddol, a phryd i fynd yn ôl un lle, y 87 00:04:04,890 --> 00:04:07,760 , cymeriad ôlnod ac yn y blaen. 88 00:04:07,760 --> 00:04:10,250 >> Mae'r cymeriadau yn cael eu galw'n cymeriadau rheoli, ac maent yn 89 00:04:10,250 --> 00:04:12,680 ffurfio gweddill y set ASCII. 90 00:04:12,680 --> 00:04:15,230 Felly, os ydym yn edrych ar fwrdd ASCII, gwelwn fod y cyntaf 91 00:04:15,230 --> 00:04:18,800 32 rhifau, sero hyd at 31, yn cael eu neilltuo ar gyfer rheoli 92 00:04:18,800 --> 00:04:20,200 cymeriadau. 93 00:04:20,200 --> 00:04:23,420 Ond rydym yn unig dweud bod 33 o gymeriadau rheoli. 94 00:04:23,420 --> 00:04:24,780 Beth y fargen? 95 00:04:24,780 --> 00:04:29,350 Wel, mae nifer sero a 127, y cyntaf a'r olaf o'r 96 00:04:29,350 --> 00:04:32,560 Set ASCII, wedi patrymau eithaf arbennig, pob seroau a phob 97 00:04:32,560 --> 00:04:34,710 rhai, yn y drefn honno. 98 00:04:34,710 --> 00:04:36,860 >> Penderfynodd y dylunwyr o ASCII, felly, i 99 00:04:36,860 --> 00:04:39,610 cadw rhifau hyn ar gyfer cymeriadau arbennig ychwanegol, 100 00:04:39,610 --> 00:04:43,310 sef y cymeriad nwl a chymeriad DEL. 101 00:04:43,310 --> 00:04:46,340 Roedd Null a DEL a fwriedir ar gyfer golygu tâp papur, a oedd yn defnyddio 102 00:04:46,340 --> 00:04:48,930 i fod yn ffordd gyffredin o ddata storio. 103 00:04:48,930 --> 00:04:51,850 Tâp papur yn llythrennol dim ond stribed hir o bapur, ac ar 104 00:04:51,850 --> 00:04:53,760 rheolaidd ar y tâp, byddech yn dyrnu 105 00:04:53,760 --> 00:04:55,430 tyllau i storio data. 106 00:04:55,430 --> 00:04:58,720 Yn dibynnu ar y lled y tâp, byddai pob colofn yn 107 00:04:58,720 --> 00:05:03,186 gallu i ddarparu ar gyfer pump, chwech, saith, neu wyth did. 108 00:05:03,186 --> 00:05:05,930 >> Er mwyn cynrychioli ychydig yn sero, byddech yn gwneud dim at y tâp, byddech 109 00:05:05,930 --> 00:05:07,930 adael lle gwag. 110 00:05:07,930 --> 00:05:10,560 Am ychydig un, byddech yn dyrnu twll. 111 00:05:10,560 --> 00:05:12,980 Byddai cymeriad null adael golofn wag, 112 00:05:12,980 --> 00:05:14,480 yn dangos yr holl seroau. 113 00:05:14,480 --> 00:05:17,250 A byddai'r cymeriad DEL dyrnu golofn llawn o dyllau 114 00:05:17,250 --> 00:05:18,550 drwy eich tâp. 115 00:05:18,550 --> 00:05:21,300 O ganlyniad, fe allech chi ddefnyddio'r cymeriad DEL i ddileu 116 00:05:21,300 --> 00:05:22,440 wybodaeth. 117 00:05:22,440 --> 00:05:25,060 Dychmygwch cymryd pleidlais etholiad llawn-allan ac yna 118 00:05:25,060 --> 00:05:27,180 dyrnu holl dyllau unpunched. 119 00:05:27,180 --> 00:05:29,410 >> Byddwch yn annilysu'r bleidlais oherwydd ei fod yn amhosibl i 120 00:05:29,410 --> 00:05:31,820 dweud beth y pleidleisiau gwreiddiol yn. 121 00:05:31,820 --> 00:05:34,720 Er bod y cymeriad DEL yn cael ei ddefnyddio o hyd yw'r modern 122 00:05:34,720 --> 00:05:37,980 Dileu allweddol, cymeriad null dod i gael ei ddefnyddio fel y 123 00:05:37,980 --> 00:05:40,010 cymeriad terfynu ar gyfer llinynnau C a 124 00:05:40,010 --> 00:05:41,990 rhai fformatau data arall. 125 00:05:41,990 --> 00:05:45,140 Efallai y byddwch yn gwybod ei fod fel y sero slaes cymeriad, 126 00:05:45,140 --> 00:05:47,720 ers hynny sut yr ydym yn ei gynrychioli yn ysgrifenedig. 127 00:05:47,720 --> 00:05:49,580 Felly gefnogi ein tabl ASCII. 128 00:05:49,580 --> 00:05:52,770 Ar ôl y cymeriadau reoli gyntaf 32 yn dod o 95 129 00:05:52,770 --> 00:05:54,280 nodau argraffadwy. 130 00:05:54,280 --> 00:05:55,800 >> Mae penderfyniadau cwpl dylunio oer gwerth 131 00:05:55,800 --> 00:05:57,330 sôn amdanynt yma. 132 00:05:57,330 --> 00:06:00,810 Yn gyntaf, y cymeriadau degol digid, sero drwy naw, 133 00:06:00,810 --> 00:06:04,050 yn cyfateb i'r rhifau 48 trwy 57, sy'n ymddangos yn 134 00:06:04,050 --> 00:06:06,980 unremarkable nes i ni edrych ar y niferoedd 48 drwy 57 135 00:06:06,980 --> 00:06:09,080 hysgrifennu mewn nodiant deuaidd. 136 00:06:09,080 --> 00:06:11,530 Os byddwn yn gwneud hynny, yna rydym yn gweld bod y cymeriad digid, 137 00:06:11,530 --> 00:06:22,320 sero, yn cyfateb i'r 0110000, un fapiau i 0110001, dau i 138 00:06:22,320 --> 00:06:26,640 0110010, ac yn y blaen. 139 00:06:26,640 --> 00:06:27,950 Gweler y patrwm? 140 00:06:27,950 --> 00:06:30,170 Mae pob cymeriad digid yn cael ei fapio ei cyfatebol 141 00:06:30,170 --> 00:06:35,170 cyfatebol mewn nodiant deuaidd, rhagddodi â 011. 142 00:06:35,170 --> 00:06:38,820 Nesaf i fyny, byddwch yn sylwi bod y llythyrau priflythyren yn dechrau am 65, 143 00:06:38,820 --> 00:06:41,310 gyda priflythyren A, ond y llythrennau bychan 144 00:06:41,310 --> 00:06:43,010 peidiwch â dechrau tan 97. 145 00:06:43,010 --> 00:06:45,580 Felly, mae 32 o leoedd yn y canol. 146 00:06:45,580 --> 00:06:47,000 Mae hynny'n ymddangos yn rhyfedd. 147 00:06:47,000 --> 00:06:49,500 Maent yn dim ond 26 llythyren yn yr wyddor. 148 00:06:49,500 --> 00:06:51,410 >> Pam eu rhannu fel hyn? 149 00:06:51,410 --> 00:06:53,960 Unwaith eto, os ydym yn edrych ar y sylwadau binary, gallwn 150 00:06:53,960 --> 00:06:55,230 gweld patrwm. 151 00:06:55,230 --> 00:07:01,360 Priflythyren A yn cael ei gynrychioli gan 1000001, a lythrennau bach a yw 152 00:07:01,360 --> 00:07:05,810 cynrychioli gan 1,100,001. 153 00:07:05,810 --> 00:07:12,770 Priflythyren B yn cael ei gynrychioli gan 1000010, a b llythrennau bach yn 154 00:07:12,770 --> 00:07:17,280 cynrychioli gan 1,100,010. 155 00:07:17,280 --> 00:07:19,440 Allwch chi ddweud beth sy'n mynd ymlaen yma? 156 00:07:19,440 --> 00:07:22,470 Y rhan dyna'r ail o'r chwith, yn y ddwy i'r 157 00:07:22,470 --> 00:07:26,510 rhan o bump, ar gyfer swydd 32ths, yn 0 ar gyfer pob un o'r priflythyren 158 00:07:26,510 --> 00:07:30,120 llythyrau, ac 1 ar gyfer pob un o'r lythrennau bach. 159 00:07:30,120 --> 00:07:33,130 >> Mae hynny'n golygu newid o priflythyren i lythrennau bach, ac 160 00:07:33,130 --> 00:07:36,000 i'r gwrthwyneb, yn fater o droi ychydig yn syml. 161 00:07:36,000 --> 00:07:38,380 Felly dyna dod â ni at ddiwedd y tabl ASCII. 162 00:07:38,380 --> 00:07:40,700 Allwch chi feddwl am unrhyw beth yr ydym wedi anghofio? 163 00:07:40,700 --> 00:07:42,510 Wel, beth am y enye Sbaen, neu 164 00:07:42,510 --> 00:07:44,630 Groeg neu wyddor Syrilig? 165 00:07:44,630 --> 00:07:46,610 A beth am Tsieineaidd cymeriadau? 166 00:07:46,610 --> 00:07:49,050 Mae llawer sydd wedi cael ei gadael allan o ASCII. 167 00:07:49,050 --> 00:07:51,920 Fodd bynnag, un arall o'r enw safonol Unicode wedi bod yn 168 00:07:51,920 --> 00:07:53,040 datblygu i gwmpasu pob un o'r rhain 169 00:07:53,040 --> 00:07:54,840 cymeriadau a llawer mwy. 170 00:07:54,840 --> 00:07:57,040 >> Ond mae hynny'n ddarostyngedig am y tro. 171 00:07:57,040 --> 00:07:58,500 Fy enw i yw Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Mae hyn yn CS50.