1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate Hardison: Vo videu na binárne, ukážeme, ako sa 2 00:00:09,290 --> 00:00:12,540 predstavujú súbor celých čísel, od nuly hore, 3 00:00:12,540 --> 00:00:15,110 použitie iba číslice nula a jedna. 4 00:00:15,110 --> 00:00:17,890 V tomto videu, budeme používať binárne notáciu 5 00:00:17,890 --> 00:00:21,160 predstavujú text, písmená a taký, rovnako. 6 00:00:21,160 --> 00:00:22,810 >> Prečo by sme sa obťažovať urobiť? 7 00:00:22,810 --> 00:00:25,450 No, pod kapotou, počítač naozaj len 8 00:00:25,450 --> 00:00:29,070 chápe núl a jedničiek, binárne číslice, pretože tieto 9 00:00:29,070 --> 00:00:32,100 môžu byť reprezentované ľahko s elektromagnetickými veci. 10 00:00:32,100 --> 00:00:35,040 >> Napríklad, myslím, že pamäte vášho počítača, ako je dlhá 11 00:00:35,040 --> 00:00:37,810 string žiaroviek, pričom každý jednotlivý žiarovka 12 00:00:37,810 --> 00:00:40,680 predstavuje nulu, ak je vypnutý, a jeden 13 00:00:40,680 --> 00:00:42,230 ak je zapnutý. 14 00:00:42,230 --> 00:00:44,730 Namiesto použitia veľa žiaroviek, niektoré moderné 15 00:00:44,730 --> 00:00:46,990 pamäti to pomocou kondenzátorov, ktoré drží nízke 16 00:00:46,990 --> 00:00:49,120 účtovať predstavujú nulu a vysokú poplatok 17 00:00:49,120 --> 00:00:50,780 reprezentovať jeden. 18 00:00:50,780 --> 00:00:52,510 >> Existujú aj iné techniky, rovnako. 19 00:00:52,510 --> 00:00:55,500 Každopádne, aby uložiť niečo do pamäti, musíme 20 00:00:55,500 --> 00:00:57,590 najprv previesť do niečoho, čo môže byť skutočne 21 00:00:57,590 --> 00:01:00,140 zastúpené vo fyzickom hardware. 22 00:01:00,140 --> 00:01:02,450 Takže poďme si o tom, ako by sme mohli reprezentovať listy s 23 00:01:02,450 --> 00:01:04,230 binárne zápis. 24 00:01:04,230 --> 00:01:08,141 V angličtine, máme 26 písmen v abecednom, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, a tak ďalej, a to až do Z. Môžeme priradiť každému z 26 00:01:12,930 --> 00:01:16,650 Tieto číslo, hovorí od nuly do 25, a potom sa za použitia 27 00:01:16,650 --> 00:01:18,880 binárny zápis, môžeme reprezentovať každého čísla ako 28 00:01:18,880 --> 00:01:20,890 postupnosť núl a jedničiek. 29 00:01:20,890 --> 00:01:22,420 To nie je tak zlé. 30 00:01:22,420 --> 00:01:25,050 Však, že to nebude stačiť. 31 00:01:25,050 --> 00:01:27,680 U tohto systému, môže sa v skutočnosti rozlišovať medzi 32 00:01:27,680 --> 00:01:29,830 horné a malé písmená. 33 00:01:29,830 --> 00:01:32,140 Ak chceme, aby naše počítač bude schopný rozlišovať medzi 34 00:01:32,140 --> 00:01:36,020 dva prípady, potom musíme ďalších 26 čísel. 35 00:01:36,020 --> 00:01:38,700 A čo období, čiarky, a 36 00:01:38,700 --> 00:01:40,390 iné interpunkčné znamienka? 37 00:01:40,390 --> 00:01:43,560 >> Na mojej klávesnice, mám 32 tých, vrátane všetkých 38 00:01:43,560 --> 00:01:46,800 špeciálne znaky, ako je strieška a ampersand. 39 00:01:46,800 --> 00:01:49,700 To nie je bez číselných znakov, nula až deväť, 40 00:01:49,700 --> 00:01:51,840 pretože stále chceme byť schopní písať čísla v desiatkovej sústave 41 00:01:51,840 --> 00:01:54,840 zápis na počítači, a to aj v prípade, že počítač len skutočne 42 00:01:54,840 --> 00:01:57,830 chápe binárny zápis pod kapotou. 43 00:01:57,830 --> 00:02:00,620 >> A konečne, budeme musieť predstavovať medzeru, aby 44 00:02:00,620 --> 00:02:02,450 že naše Space Bar funguje. 45 00:02:02,450 --> 00:02:04,920 Tak prísť na to, ako reprezentovať textu na počítači 46 00:02:04,920 --> 00:02:08,400 trvá trochu viac, než sme si mysleli pôvodne. 47 00:02:08,400 --> 00:02:11,710 Navyše predpokladajme, že sme potom prísť s vlastnou kódovanie 48 00:02:11,710 --> 00:02:14,560 režim reprezentovať znaky ako čísla. 49 00:02:14,560 --> 00:02:17,470 Avšak sme sa rozhodli kódovať znaky, bude nevyhnutne 50 00:02:17,470 --> 00:02:20,630 ľubovoľný, ako sme videli predtým, keď sme hovorili o použití 51 00:02:20,630 --> 00:02:23,730 Čísla nulu až 25 predstavujú písmená 52 00:02:23,730 --> 00:02:26,850 do Z. Prečo nevyužiť 10 až 35 tak, že môžeme ušetriť 53 00:02:26,850 --> 00:02:29,350 nula až deväť pre číselných znakov? 54 00:02:29,350 --> 00:02:31,590 >> Nie je tam žiadny skutočný dôvod, len sme zvolili, čo sa zdalo 55 00:02:31,590 --> 00:02:33,770 pre nás najlepšie. 56 00:02:33,770 --> 00:02:37,650 Späť na začiatku 1960, to bol skutočný problém. 57 00:02:37,650 --> 00:02:39,370 Rôzne výrobcovia počítačov boli pomocou 58 00:02:39,370 --> 00:02:41,910 rôzne kódovania režimy, a to z komunikácie 59 00:02:41,910 --> 00:02:44,340 medzi rôznymi strojmi veľmi náročná úloha. 60 00:02:44,340 --> 00:02:47,810 American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 tvoril výbor vyvinúť spoločný systém. 62 00:02:50,210 --> 00:02:53,780 A v roku 1963, americký štandardný kód pre informácie 63 00:02:53,780 --> 00:02:58,600 Interchange, viac obyčajne známy ako ASCII, sa narodil. 64 00:02:58,600 --> 00:03:01,360 >> ASCII bol navrhnutý ako sedem-bit kódovanie, ktoré 65 00:03:01,360 --> 00:03:03,800 znamená, že každý znak je reprezentovaný kombináciou 66 00:03:03,800 --> 00:03:06,070 siedmich núl a jedničiek. 67 00:03:06,070 --> 00:03:09,670 S týmito dvoma možnými hodnotami, nula alebo jedna, pre každý 68 00:03:09,670 --> 00:03:14,040 zo siedmich bitov, sú tam dva na siedmom alebo 128 69 00:03:14,040 --> 00:03:16,120 znaky, ktoré môžu byť reprezentované s ASCII 70 00:03:16,120 --> 00:03:18,140 kódovanie schéma. 71 00:03:18,140 --> 00:03:21,480 Takže 128 znakov znie ako veľa, nie? 72 00:03:21,480 --> 00:03:24,180 No, nezabudnite, že existujú 26 malé písmená v 73 00:03:24,180 --> 00:03:29,260 Angličtina, ďalších 26 veľké písmená, číslice 10 znakov, 74 00:03:29,260 --> 00:03:31,470 32 interpunkcie a špeciálnych znakov, 75 00:03:31,470 --> 00:03:33,430 a jeden znak medzery. 76 00:03:33,430 --> 00:03:37,050 >> To nás stavia na 95, takže máme ďalší 33 znaky, ktoré sme 77 00:03:37,050 --> 00:03:38,400 môžu predstavovať. 78 00:03:38,400 --> 00:03:39,900 >> Takže čo zostáva? 79 00:03:39,900 --> 00:03:43,130 No, v dňoch vývoja ASCII, ďalekopisu 80 00:03:43,130 --> 00:03:45,080 stroje, ktoré sú písacie ktoré sa používajú na 81 00:03:45,080 --> 00:03:48,040 odosielať správy cez sieť, boli rozšírené. 82 00:03:48,040 --> 00:03:50,030 A tieto stroje mali ďalšie znaky používané na 83 00:03:50,030 --> 00:03:52,890 kontrolovať, napríklad, aby im povedal, keď presunúť 84 00:03:52,890 --> 00:03:57,620 tlačovú hlavu dole riadku, Line Feed, nový alebo tlačidlo linky, 85 00:03:57,620 --> 00:04:00,440 keď sa presuniete do ľavého okraja, návrat vozíka, 86 00:04:00,440 --> 00:04:04,890 alebo jednoducho vrátiť kľúče, a keď sa vrátite o jednu medzeru, 87 00:04:04,890 --> 00:04:07,760 backspace charakter, a tak ďalej. 88 00:04:07,760 --> 00:04:10,250 >> Tieto znaky sa nazývajú riadiace znaky, a 89 00:04:10,250 --> 00:04:12,680 tvoria zvyšok sady ASCII. 90 00:04:12,680 --> 00:04:15,230 Takže ak sa pozrieme na ASCII tabuľky, zistíme, že prvá 91 00:04:15,230 --> 00:04:18,800 32 čísel, nula až 31, sú vyhradené pre ovládanie 92 00:04:18,800 --> 00:04:20,200 znakov. 93 00:04:20,200 --> 00:04:23,420 Ale my to jednoducho povedal, že to tam bolo 33 kontrolných znakov. 94 00:04:23,420 --> 00:04:24,780 O čo ide? 95 00:04:24,780 --> 00:04:29,350 No, číslo nula a 127, prvý a posledný z 96 00:04:29,350 --> 00:04:32,560 Znaková sada ASCII, majú špeciálne bitové vzory, všetky nuly a všetky 97 00:04:32,560 --> 00:04:34,710 ty, resp. 98 00:04:34,710 --> 00:04:36,860 >> Návrhári ASCII rozhodol preto, aby 99 00:04:36,860 --> 00:04:39,610 zachovanie týchto položiek na ďalšie špeciálne znaky, 100 00:04:39,610 --> 00:04:43,310 totiž null znak a znak DEL. 101 00:04:43,310 --> 00:04:46,340 Null a DEL boli určené pre editáciu dierne pásky, ktoré používa 102 00:04:46,340 --> 00:04:48,930 byť bežný spôsob ukladania dát. 103 00:04:48,930 --> 00:04:51,850 Papierová páska bola doslova dlhý pás papiera, a na 104 00:04:51,850 --> 00:04:53,760 v pravidelných intervaloch na pásku, mali by ste punč 105 00:04:53,760 --> 00:04:55,430 otvory pre ukladanie dát. 106 00:04:55,430 --> 00:04:58,720 V závislosti na šírke pásky, každý stĺpec sa 107 00:04:58,720 --> 00:05:03,186 schopná pojať päť, šesť, sedem, alebo osem kúskov. 108 00:05:03,186 --> 00:05:05,930 >> Ak chcete predstavujú nulovú trochu, že nebudete robiť nič na pásku, mali by ste 109 00:05:05,930 --> 00:05:07,930 nechaj medzeru. 110 00:05:07,930 --> 00:05:10,560 Pre jeden bit, by ste dieru. 111 00:05:10,560 --> 00:05:12,980 Null charakter by len tak nechať prázdny stĺpec, 112 00:05:12,980 --> 00:05:14,480 s uvedením všetkých nuly. 113 00:05:14,480 --> 00:05:17,250 A postava DEL by udrel stĺpec plný dier 114 00:05:17,250 --> 00:05:18,550 cez pásku. 115 00:05:18,550 --> 00:05:21,300 V dôsledku toho, môže použiť znak DEL odstrániť 116 00:05:21,300 --> 00:05:22,440 informácie. 117 00:05:22,440 --> 00:05:25,060 Predstavte si, že vyplnený volebný hlasovanie a potom 118 00:05:25,060 --> 00:05:27,180 dierovanie všetkých nedierované otvory. 119 00:05:27,180 --> 00:05:29,410 >> Môžete vyvrátiť hlasovací lístok, pretože to je nemožné, aby 120 00:05:29,410 --> 00:05:31,820 povedať, čo pôvodné hlasy boli. 121 00:05:31,820 --> 00:05:34,720 Kým znak DEL sa stále používa, je moderné 122 00:05:34,720 --> 00:05:37,980 Odstránenie kľúče, nulový znak prišiel byť používaný ako 123 00:05:37,980 --> 00:05:40,010 ukončovacie znak pre reťazce C a 124 00:05:40,010 --> 00:05:41,990 niektoré ďalšie formáty dát. 125 00:05:41,990 --> 00:05:45,140 Môžete viete, že ako znak spätného lomítka nulové, 126 00:05:45,140 --> 00:05:47,720 pretože to je to, ako sme ju zastupujú v písomnej forme. 127 00:05:47,720 --> 00:05:49,580 Takže späť k nášmu ASCII tabuľky. 128 00:05:49,580 --> 00:05:52,770 Po prvých 32 riadiace znaky príde 95 129 00:05:52,770 --> 00:05:54,280 tlačiteľných znakov. 130 00:05:54,280 --> 00:05:55,800 >> Existuje niekoľko skvelých rozhodnutia o návrhu stojí 131 00:05:55,800 --> 00:05:57,330 hovoril o tom tu. 132 00:05:57,330 --> 00:06:00,810 Po prvé, desatinné číslice znaky, nula až deväť, 133 00:06:00,810 --> 00:06:04,050 zodpovedajú číslam 48 až 57, ktorý sa zdá byť 134 00:06:04,050 --> 00:06:06,980 všedný kým sa pozrieme na čísla 48 až 57 135 00:06:06,980 --> 00:06:09,080 napísaný v binárnom zápise. 136 00:06:09,080 --> 00:06:11,530 Ak to urobíme, potom vidíme, že číslice znak, 137 00:06:11,530 --> 00:06:22,320 nula, zodpovedá 0110000, jeden máp do 0110001, dva 138 00:06:22,320 --> 00:06:26,640 0110010, a tak ďalej. 139 00:06:26,640 --> 00:06:27,950 Pozrite sa na vzor? 140 00:06:27,950 --> 00:06:30,170 Každá číslica znak je mapovaná na jeho zodpovedajúce 141 00:06:30,170 --> 00:06:35,170 ekvivalent v binárnej notácii, s predponou 011. 142 00:06:35,170 --> 00:06:38,820 Ďalší na rade, zistíte, že veľké písmená začínajú na 65, 143 00:06:38,820 --> 00:06:41,310 s veľkým A, ale malými písmenami 144 00:06:41,310 --> 00:06:43,010 sa nespustí, kým 97. 145 00:06:43,010 --> 00:06:45,580 Takže tam je 32 miest v medzi. 146 00:06:45,580 --> 00:06:47,000 To sa zdá divné. 147 00:06:47,000 --> 00:06:49,500 Sú len 26 písmen v abecede. 148 00:06:49,500 --> 00:06:51,410 >> Prečo je rozdeliť takto? 149 00:06:51,410 --> 00:06:53,960 Opäť platí, že ak sa pozrieme na binárne reprezentácie, môžeme 150 00:06:53,960 --> 00:06:55,230 pozri vzor. 151 00:06:55,230 --> 00:07:01,360 Veľká je zastúpená 1000001, a malé písmená, je 152 00:07:01,360 --> 00:07:05,810 zastúpené 1100001. 153 00:07:05,810 --> 00:07:12,770 Veľké písmená B je zastúpená 1000010, a malá b je 154 00:07:12,770 --> 00:07:17,280 zastúpené 1100010. 155 00:07:17,280 --> 00:07:19,440 Môžeš mi povedať, čo sa tu deje? 156 00:07:19,440 --> 00:07:22,470 Bit, že je to druhá zľava, v dvoch až 157 00:07:22,470 --> 00:07:26,510 pätiny, pre 32ths pozíciu, je 0 pre všetky veľké 158 00:07:26,510 --> 00:07:30,120 Písmená, a 1 pre všetky malými písmenami. 159 00:07:30,120 --> 00:07:33,130 >> To znamená, že prevod z veľká na malé písmená, a 160 00:07:33,130 --> 00:07:36,000 naopak, je otázkou jednoduchého bit flip. 161 00:07:36,000 --> 00:07:38,380 Tak, že sa dostávame na koniec ASCII tabuľky. 162 00:07:38,380 --> 00:07:40,700 Spomeniete si na niečo sme zabudli? 163 00:07:40,700 --> 00:07:42,510 No, čo španielske enye, alebo 164 00:07:42,510 --> 00:07:44,630 Riek alebo cyrilika? 165 00:07:44,630 --> 00:07:46,610 A čo čínske znaky? 166 00:07:46,610 --> 00:07:49,050 Je tu veľa, že to bolo vynechané ASCII. 167 00:07:49,050 --> 00:07:51,920 Avšak, iný štandard nazvaný Unicode bola 168 00:07:51,920 --> 00:07:53,040 vyvinutý pre pokrytie všetkých týchto 169 00:07:53,040 --> 00:07:54,840 postavy a mnoho ďalších. 170 00:07:54,840 --> 00:07:57,040 >> Ale to je téma pre inú dobu. 171 00:07:57,040 --> 00:07:58,500 Moje meno je Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 To je CS50.