1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate HARDISON: In die video op die binêre, ons wys hoe om 2 00:00:09,290 --> 00:00:12,540 verteenwoordig die versameling van heelgetalle, van nul tot 3 00:00:12,540 --> 00:00:15,110 met behulp van slegs die syfers nul en een. 4 00:00:15,110 --> 00:00:17,890 In hierdie video, gaan ons binêre notasie te gebruik 5 00:00:17,890 --> 00:00:21,160 Stel teks, briewe en so, sowel. 6 00:00:21,160 --> 00:00:22,810 >> Waarom sou ons die moeite om dit te doen? 7 00:00:22,810 --> 00:00:25,450 Wel, onder die kap, eintlik net 'n rekenaar 8 00:00:25,450 --> 00:00:29,070 nulle en ene, die binêre syfers verstaan, aangesien hierdie 9 00:00:29,070 --> 00:00:32,100 kan maklik verteenwoordig met elektromagnetiese dinge. 10 00:00:32,100 --> 00:00:35,040 >> Byvoorbeeld, dink van jou rekenaar se geheue soos 'n lang 11 00:00:35,040 --> 00:00:37,810 string van gloeilampe, waardeur elke gloeilamp 12 00:00:37,810 --> 00:00:40,680 verteenwoordig 'n nul as dit afgeskakel is, en 'n 13 00:00:40,680 --> 00:00:42,230 as dit is aangeskakel. 14 00:00:42,230 --> 00:00:44,730 In plaas van die gebruik van 'n klomp van die gloeilampe, sommige moderne 15 00:00:44,730 --> 00:00:46,990 geheue beteken dit die gebruik van kapasitore wat in besit wees van 'n lae 16 00:00:46,990 --> 00:00:49,120 hef 'n nul te stel en 'n hoë lading 17 00:00:49,120 --> 00:00:50,780 'n een te verteenwoordig. 18 00:00:50,780 --> 00:00:52,510 >> Daar is ook ander tegnieke asook. 19 00:00:52,510 --> 00:00:55,500 In elk geval, om iets in die geheue op te slaan, moet ons 20 00:00:55,500 --> 00:00:57,590 skakel dit eers in iets wat eintlik kan wees 21 00:00:57,590 --> 00:01:00,140 verteenwoordig in die fisiese hardeware. 22 00:01:00,140 --> 00:01:02,450 So laat dink oor hoe ons kan verteenwoordig letters met 23 00:01:02,450 --> 00:01:04,230 binêre notasie. 24 00:01:04,230 --> 00:01:08,141 In Engels, ons het 26 letters in die alfabetiese, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, en so aan, deur Z. Ons kan toewys elkeen van 26 00:01:12,930 --> 00:01:16,650 hierdie 'n aantal, sê nul tot 25, en dan met behulp van 27 00:01:16,650 --> 00:01:18,880 binêre notasie, kan ons elke getal verteenwoordig as 'n 28 00:01:18,880 --> 00:01:20,890 volgorde van nulle en ene. 29 00:01:20,890 --> 00:01:22,420 Dit is nie te sleg nie. 30 00:01:22,420 --> 00:01:25,050 Maar, dit is nie genoeg sal wees. 31 00:01:25,050 --> 00:01:27,680 Met hierdie stelsel, kan ons nie werklik onderskei tussen 32 00:01:27,680 --> 00:01:29,830 boonste en kleinletters. 33 00:01:29,830 --> 00:01:32,140 As ons wil hê ons rekenaar in staat wees om te onderskei tussen 34 00:01:32,140 --> 00:01:36,020 die twee gevalle, dan moet ons 'n bykomende 26 nommers. 35 00:01:36,020 --> 00:01:38,700 En wat oor tydperke, kommas en 36 00:01:38,700 --> 00:01:40,390 ander leestekens? 37 00:01:40,390 --> 00:01:43,560 >> Op my sleutelbord, ek het 32 ​​van dié, met inbegrip van al die 38 00:01:43,560 --> 00:01:46,800 spesiale karakters soos die kappie en die ampersand. 39 00:01:46,800 --> 00:01:49,700 Dit is nie insluitend die syfer karakters, nul deur nege, 40 00:01:49,700 --> 00:01:51,840 want ons wil nog steeds in staat wees om in desimale getalle te tik 41 00:01:51,840 --> 00:01:54,840 notasie op die rekenaar, selfs as die rekenaar eintlik net 42 00:01:54,840 --> 00:01:57,830 verstaan ​​binêre notasie onder die kap. 43 00:01:57,830 --> 00:02:00,620 >> En uiteindelik, sal ons moet 'n spasie karakter te stel, sodat 44 00:02:00,620 --> 00:02:02,450 dat ons spasie balk werk. 45 00:02:02,450 --> 00:02:04,920 So uitzoeken hoe om teks te stel op die rekenaar 46 00:02:04,920 --> 00:02:08,400 neem 'n bietjie meer as wat ons aanvanklik gedink het. 47 00:02:08,400 --> 00:02:11,710 Verder, kom ons neem dan aan met ons eie enkodering 48 00:02:11,710 --> 00:02:14,560 skema om karakters voor te stel as getalle. 49 00:02:14,560 --> 00:02:17,470 Maar ons besluit om te enkodeer karakters onvermydelik sal wees 50 00:02:17,470 --> 00:02:20,630 arbitrêre, soos ons gesien het vroeër toe ons gepraat oor die gebruik van die 51 00:02:20,630 --> 00:02:23,730 getalle nul deur 25 om die letters te verteenwoordig 'n 52 00:02:23,730 --> 00:02:26,850 deur Z. Waarom nie gebruik 10 deur 35 sodat ons kan red 53 00:02:26,850 --> 00:02:29,350 nul deur nege vir die syfer karakters? 54 00:02:29,350 --> 00:02:31,590 >> Daar is geen werklike rede, ons kies net watter gelyk 55 00:02:31,590 --> 00:02:33,770 beste vir ons. 56 00:02:33,770 --> 00:02:37,650 Terug in die vroeë 1960's, was dit 'n werklike probleem. 57 00:02:37,650 --> 00:02:39,370 Ander rekenaar vervaardigers is met behulp van 58 00:02:39,370 --> 00:02:41,910 verskillende kodering skedule, en dit het kommunikasie 59 00:02:41,910 --> 00:02:44,340 tussen verskillende masjiene 'n baie moeilike taak. 60 00:02:44,340 --> 00:02:47,810 Die American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 'n komitee gevorm het om 'n gemeenskaplike skema te ontwikkel. 62 00:02:50,210 --> 00:02:53,780 En in 1963, die Amerikaanse Standaard Kode vir inligting 63 00:02:53,780 --> 00:02:58,600 Wisselaar, meer algemeen bekend as ASCII, gebore. 64 00:02:58,600 --> 00:03:01,360 >> ASCII is ontwerp as 'n sewe-bis kodering, wat 65 00:03:01,360 --> 00:03:03,800 beteken dat elke karakter word verteenwoordig deur 'n kombinasie 66 00:03:03,800 --> 00:03:06,070 van sewe nulle en ene. 67 00:03:06,070 --> 00:03:09,670 Met dié twee moontlike waardes, nul of een vir elke 68 00:03:09,670 --> 00:03:14,040 van die sewe bisse, is daar twee na die sewende of 128 69 00:03:14,040 --> 00:03:16,120 karakters wat met die ASCII verteenwoordig word 70 00:03:16,120 --> 00:03:18,140 kodering skema. 71 00:03:18,140 --> 00:03:21,480 So 128 karakters klink soos 'n baie, reg? 72 00:03:21,480 --> 00:03:24,180 Wel, onthou dat daar 26 kleinletters in 73 00:03:24,180 --> 00:03:29,260 Engels, 'n ander 26 hoofletters, 10 syfer karakters, 74 00:03:29,260 --> 00:03:31,470 32 leestekens en spesiale karakters, 75 00:03:31,470 --> 00:03:33,430 en een spasie karakter. 76 00:03:33,430 --> 00:03:37,050 >> Dit plaas ons op 95, so ons het nog 33 karakters dat ons 77 00:03:37,050 --> 00:03:38,400 kan voorstel. 78 00:03:38,400 --> 00:03:39,900 >> So, wat is oor? 79 00:03:39,900 --> 00:03:43,130 Wel, in die dae van die ontwikkeling van ASCII, telex 80 00:03:43,130 --> 00:03:45,080 masjiene, wat tikmasjiene wat gebruik word om 81 00:03:45,080 --> 00:03:48,040 boodskappe stuur oor 'n netwerk, was wydverspreid. 82 00:03:48,040 --> 00:03:50,030 En hierdie masjiene het bykomende karakters wat gebruik word om 83 00:03:50,030 --> 00:03:52,890 hulle beheer, byvoorbeeld, aan hulle vertel wanneer om te beweeg die 84 00:03:52,890 --> 00:03:57,620 druk kop af 'n lyn, die lyn voer of 'n nuwe lyn sleutel, 85 00:03:57,620 --> 00:04:00,440 wanneer om op te skuif na die linker kantlyn, die return, 86 00:04:00,440 --> 00:04:04,890 of eenvoudig terugkeer sleutel, en wanneer om terug te gaan 'n ruimte, 87 00:04:04,890 --> 00:04:07,760 back space karakter, en so aan. 88 00:04:07,760 --> 00:04:10,250 >> Hierdie karakters word beheer karakters genoem, en hulle 89 00:04:10,250 --> 00:04:12,680 vorm die res van die ASCII stel. 90 00:04:12,680 --> 00:04:15,230 So as ons kyk na 'n ASCII-tabel, sien ons dat die eerste 91 00:04:15,230 --> 00:04:18,800 32 nommers, nul tot 31, word voorbehou vir die beheer 92 00:04:18,800 --> 00:04:20,200 karakters. 93 00:04:20,200 --> 00:04:23,420 Maar ons het net gesê dat daar 33 beheer karakters. 94 00:04:23,420 --> 00:04:24,780 Wat is die deal? 95 00:04:24,780 --> 00:04:29,350 Wel, die getal nul en 127, die eerste en die laaste van die 96 00:04:29,350 --> 00:04:32,560 ASCII stel, het spesiale bietjie patrone, alle nulle en alle 97 00:04:32,560 --> 00:04:34,710 kinders, onderskeidelik. 98 00:04:34,710 --> 00:04:36,860 >> Die ontwerpers van ASCII besluit dus om 99 00:04:36,860 --> 00:04:39,610 bewaar hierdie getalle vir ekstra spesiale karakters, 100 00:04:39,610 --> 00:04:43,310 naamlik die null karakter en die DEL karakter. 101 00:04:43,310 --> 00:04:46,340 Nul en DEL is bedoel vir papier tape redigering, wat gebruik word 102 00:04:46,340 --> 00:04:48,930 'n gemeenskaplike manier van die stoor van data. 103 00:04:48,930 --> 00:04:51,850 Papier tape was letterlik net 'n lang strook papier, en by 104 00:04:51,850 --> 00:04:53,760 gereelde tussenposes op die band, wil jy punch 105 00:04:53,760 --> 00:04:55,430 gate data te stoor. 106 00:04:55,430 --> 00:04:58,720 Afhangende van die wydte van die band, sou elke kolom 107 00:04:58,720 --> 00:05:03,186 vyf, ses, sewe, of agt bisse te akkommodeer. 108 00:05:03,186 --> 00:05:05,930 >> 'N nul bietjie te stel, jy wil niks doen nie na die band, sou jy 109 00:05:05,930 --> 00:05:07,930 net laat 'n leë ruimte. 110 00:05:07,930 --> 00:05:10,560 Vir 'n bietjie, het jy pons 'n gaatjie. 111 00:05:10,560 --> 00:05:12,980 Die null karakter sou net 'n leë kolom verlaat, 112 00:05:12,980 --> 00:05:14,480 aandui alle nulle. 113 00:05:14,480 --> 00:05:17,250 En die DEL karakter sou pons 'n kolom vol gate 114 00:05:17,250 --> 00:05:18,550 deur jou tape. 115 00:05:18,550 --> 00:05:21,300 As 'n resultaat, kan jy die DEL karakter gebruik om te verwyder 116 00:05:21,300 --> 00:05:22,440 inligting. 117 00:05:22,440 --> 00:05:25,060 Stel jou voor die neem van 'n vol-verkiesing stembrief en dan 118 00:05:25,060 --> 00:05:27,180 pons die hele unpunched gate. 119 00:05:27,180 --> 00:05:29,410 >> Jy die stembrief ongeldig, want dit is onmoontlik om te 120 00:05:29,410 --> 00:05:31,820 vertel wat was die oorspronklike stemme. 121 00:05:31,820 --> 00:05:34,720 Terwyl die DEL karakter is nog steeds gebruik word, is die moderne 122 00:05:34,720 --> 00:05:37,980 Delete-sleutel, die null karakter het om gebruik te word as die 123 00:05:37,980 --> 00:05:40,010 beëindiging karakter vir C-stringe en 124 00:05:40,010 --> 00:05:41,990 n paar ander data formate. 125 00:05:41,990 --> 00:05:45,140 Jy kan weet dit as die agteroorskuinsstreep nul karakter, 126 00:05:45,140 --> 00:05:47,720 want dit is hoe ons stel dit op skrif. 127 00:05:47,720 --> 00:05:49,580 So terug na ons ASCII tabel. 128 00:05:49,580 --> 00:05:52,770 Na die eerste 32 beheer karakters kom die 95 129 00:05:52,770 --> 00:05:54,280 drukbare karakters. 130 00:05:54,280 --> 00:05:55,800 >> Daar is 'n paar cool design besluite moeite werd 131 00:05:55,800 --> 00:05:57,330 hier praat. 132 00:05:57,330 --> 00:06:00,810 Eerste, die desimale syfer karakters, nul deur nege, 133 00:06:00,810 --> 00:06:04,050 stem ooreen met die nommers 48 tot 57, wat blyk 134 00:06:04,050 --> 00:06:06,980 alledaags totdat ons kyk na die getalle 48 deur 57 135 00:06:06,980 --> 00:06:09,080 geskryf in binêre notasie. 136 00:06:09,080 --> 00:06:11,530 As ons dit doen, dan sien ons dat die syfer karakter, 137 00:06:11,530 --> 00:06:22,320 zero, stem ooreen met 0110000, een kaarte 0110001, twee 138 00:06:22,320 --> 00:06:26,640 0110010, en so aan. 139 00:06:26,640 --> 00:06:27,950 Sien jy die patroon? 140 00:06:27,950 --> 00:06:30,170 Elke syfer karakter is verbind aan die ooreenstemmende 141 00:06:30,170 --> 00:06:35,170 ekwivalent in binêre notasie, voorafgegaan deur 011. 142 00:06:35,170 --> 00:06:38,820 Next up, sien jy dat die hoofletters begin op 65, 143 00:06:38,820 --> 00:06:41,310 met hoofletters A, maar die kleinletters 144 00:06:41,310 --> 00:06:43,010 begin nie tot 97. 145 00:06:43,010 --> 00:06:45,580 So is daar 32 spasies tussenin. 146 00:06:45,580 --> 00:06:47,000 Dit lyk weird. 147 00:06:47,000 --> 00:06:49,500 Hulle is slegs 26 letters in die alfabet. 148 00:06:49,500 --> 00:06:51,410 >> Hoekom verdeel hulle soos hierdie? 149 00:06:51,410 --> 00:06:53,960 Weereens, as ons kyk na die binêre voorstellings, kan ons 150 00:06:53,960 --> 00:06:55,230 sien 'n patroon. 151 00:06:55,230 --> 00:07:01,360 Hoofletter A word verteenwoordig deur 1000001, en onderkas a is 152 00:07:01,360 --> 00:07:05,810 verteenwoordig deur 1.100.001. 153 00:07:05,810 --> 00:07:12,770 Uppercase B word verteenwoordig deur 1000010, en kleinletter b 154 00:07:12,770 --> 00:07:17,280 verteenwoordig deur 1.100.010. 155 00:07:17,280 --> 00:07:19,440 Kan jy vertel wat gaan hier aan? 156 00:07:19,440 --> 00:07:22,470 Die bietjie wat is die tweede van links, in die twee aan die 157 00:07:22,470 --> 00:07:26,510 vyfdes, 32ths posisie, 0 vir al die hoofletters 158 00:07:26,510 --> 00:07:30,120 briewe, en 1 vir alle van die kleinletters. 159 00:07:30,120 --> 00:07:33,130 >> Dit beteken dat die omskakeling van hoofletters na onderkas, en 160 00:07:33,130 --> 00:07:36,000 omgekeerd, is 'n kwessie van 'n eenvoudige bietjie flip. 161 00:07:36,000 --> 00:07:38,380 So dit bring ons aan die einde van die ASCII-tabel. 162 00:07:38,380 --> 00:07:40,700 Kan jy dink aan enigiets wat ons vergeet het? 163 00:07:40,700 --> 00:07:42,510 Wel, wat oor die Spaanse enye, of die 164 00:07:42,510 --> 00:07:44,630 Grieks of Cyrilliese alfabet? 165 00:07:44,630 --> 00:07:46,610 En hoe oor die Chinese karakters? 166 00:07:46,610 --> 00:07:49,050 Daar is 'n baie wat uitgelaat uit ASCII. 167 00:07:49,050 --> 00:07:51,920 Het egter ander standaard genoem Unicode 168 00:07:51,920 --> 00:07:53,040 ontwikkel om al hierdie te dek 169 00:07:53,040 --> 00:07:54,840 karakters en nog baie meer. 170 00:07:54,840 --> 00:07:57,040 >> Maar dit is 'n onderwerp vir 'n ander tyd. 171 00:07:57,040 --> 00:07:58,500 My naam is Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Dit is CS50.