1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Hardison: Ve videu na binární, ukážeme, jak se 2 00:00:09,290 --> 00:00:12,540 představují sadu celých čísel, od nuly nahoru, 3 00:00:12,540 --> 00:00:15,110 použití pouze číslice nula a jedna. 4 00:00:15,110 --> 00:00:17,890 V tomto videu, budeme používat binární notaci 5 00:00:17,890 --> 00:00:21,160 představují text, dopisy a jako, stejně. 6 00:00:21,160 --> 00:00:22,810 >> Proč bychom se obtěžovat udělat? 7 00:00:22,810 --> 00:00:25,450 No, pod kapotou, počítač opravdu jen 8 00:00:25,450 --> 00:00:29,070 chápe nul a jedniček, binární číslice, protože tyto 9 00:00:29,070 --> 00:00:32,100 mohou být reprezentovány snadno s elektromagnetickými věci. 10 00:00:32,100 --> 00:00:35,040 >> Například, myslím, že paměti vašeho počítače, jako je dlouhá 11 00:00:35,040 --> 00:00:37,810 string žárovek, přičemž každý jednotlivý žárovka 12 00:00:37,810 --> 00:00:40,680 představuje nulu, pokud je vypnutý, a jeden 13 00:00:40,680 --> 00:00:42,230 pokud je zapnutý. 14 00:00:42,230 --> 00:00:44,730 Namísto použití spoustu žárovek, některé moderní 15 00:00:44,730 --> 00:00:46,990 paměti to pomocí kondenzátorů, které drží nízké 16 00:00:46,990 --> 00:00:49,120 účtovat představují nulu a vysokou poplatek 17 00:00:49,120 --> 00:00:50,780 reprezentovat jeden. 18 00:00:50,780 --> 00:00:52,510 >> Existují i ​​jiné techniky, stejně. 19 00:00:52,510 --> 00:00:55,500 Každopádně, aby uložit něco do paměti, musíme 20 00:00:55,500 --> 00:00:57,590 nejprve převést do něčeho, co může být skutečně 21 00:00:57,590 --> 00:01:00,140 zastoupeny ve fyzickém hardware. 22 00:01:00,140 --> 00:01:02,450 Takže pojďme si o tom, jak bychom mohli reprezentovat dopisy s 23 00:01:02,450 --> 00:01:04,230 binární zápis. 24 00:01:04,230 --> 00:01:08,141 V angličtině, máme 26 písmen v abecedním, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, a tak dále, a to až do Z. Můžeme přiřadit každému z 26 00:01:12,930 --> 00:01:16,650 Tyto číslo, říká od nuly do 25, a pak se za použití 27 00:01:16,650 --> 00:01:18,880 binární zápis, můžeme reprezentovat každého čísla jako 28 00:01:18,880 --> 00:01:20,890 posloupnost nul a jedniček. 29 00:01:20,890 --> 00:01:22,420 To není tak špatné. 30 00:01:22,420 --> 00:01:25,050 Nicméně, že to nebude stačit. 31 00:01:25,050 --> 00:01:27,680 U tohoto systému, může se ve skutečnosti rozlišovat mezi 32 00:01:27,680 --> 00:01:29,830 horní a malá písmena. 33 00:01:29,830 --> 00:01:32,140 Pokud chceme, aby naše počítač bude schopen rozlišovat mezi 34 00:01:32,140 --> 00:01:36,020 dva případy, pak musíme dalších 26 čísel. 35 00:01:36,020 --> 00:01:38,700 A co období, čárky, a 36 00:01:38,700 --> 00:01:40,390 jiná interpunkční znaménka? 37 00:01:40,390 --> 00:01:43,560 >> Na mé klávesnice, mám 32 těch, včetně všech 38 00:01:43,560 --> 00:01:46,800 speciální znaky, jako je stříška a ampersand. 39 00:01:46,800 --> 00:01:49,700 To není bez číselných znaků, nula až devět, 40 00:01:49,700 --> 00:01:51,840 protože stále chceme být schopni psát čísla v desítkové soustavě 41 00:01:51,840 --> 00:01:54,840 zápis na počítači, a to i v případě, že počítač pouze skutečně 42 00:01:54,840 --> 00:01:57,830 chápe binární zápis pod kapotou. 43 00:01:57,830 --> 00:02:00,620 >> A konečně, budeme muset představovat mezeru, 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 přijít na to, jak reprezentovat textu na počítači 46 00:02:04,920 --> 00:02:08,400 trvá trochu víc, než jsme si mysleli původně. 47 00:02:08,400 --> 00:02:11,710 Navíc předpokládejme, že jsme pak přijít s vlastní kódování 48 00:02:11,710 --> 00:02:14,560 režim k reprezentaci znaků jako čísla. 49 00:02:14,560 --> 00:02:17,470 Nicméně jsme se rozhodli kódovat znaky, bude nevyhnutelně 50 00:02:17,470 --> 00:02:20,630 libovolný, jak jsme viděli dříve, když jsme hovořili o používání 51 00:02:20,630 --> 00:02:23,730 Čísla nulu až 25 představují písmena 52 00:02:23,730 --> 00:02:26,850 do Z. Proč nevyužít 10 až 35 tak, že můžeme ušetřit 53 00:02:26,850 --> 00:02:29,350 nula až devět pro číselných znaků? 54 00:02:29,350 --> 00:02:31,590 >> Není tam žádný skutečný důvod, jen jsme zvolili, co se zdálo 55 00:02:31,590 --> 00:02:33,770 pro nás nejlepší. 56 00:02:33,770 --> 00:02:37,650 Zpět na počátku 1960, to byl skutečný problém. 57 00:02:37,650 --> 00:02:39,370 Různé výrobci počítačů byly pomocí 58 00:02:39,370 --> 00:02:41,910 různé kódování režimy, a to z komunikace 59 00:02:41,910 --> 00:02:44,340 mezi různými stroji velmi obtížný úkol. 60 00:02:44,340 --> 00:02:47,810 American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 tvořil výbor vyvinout společný systém. 62 00:02:50,210 --> 00:02:53,780 A v roce 1963, americký standardní kód pro informace 63 00:02:53,780 --> 00:02:58,600 Interchange, více obyčejně známý jako ASCII, se narodil. 64 00:02:58,600 --> 00:03:01,360 >> ASCII byl navržen jako sedm-bit kódování, které 65 00:03:01,360 --> 00:03:03,800 znamená, že každý znak je reprezentován kombinací 66 00:03:03,800 --> 00:03:06,070 sedmi nul a jedniček. 67 00:03:06,070 --> 00:03:09,670 S těmito dvěma možnými hodnotami, nula nebo jedna, pro každý 68 00:03:09,670 --> 00:03:14,040 ze sedmi bitů, jsou dvě na sedmou nebo 128 69 00:03:14,040 --> 00:03:16,120 znaky, které mohou být reprezentovány s ASCII 70 00:03:16,120 --> 00:03:18,140 kódování schéma. 71 00:03:18,140 --> 00:03:21,480 Takže 128 znaků zní jako hodně, ne? 72 00:03:21,480 --> 00:03:24,180 No, nezapomeňte, že existují 26 malá písmena v 73 00:03:24,180 --> 00:03:29,260 Angličtina, dalších 26 velká písmena, číslice 10 znaků, 74 00:03:29,260 --> 00:03:31,470 32 interpunkce a speciálních znaků, 75 00:03:31,470 --> 00:03:33,430 a jeden znak mezery. 76 00:03:33,430 --> 00:03:37,050 >> To nás staví na 95, takže máme další 33 znaky, které jsme 77 00:03:37,050 --> 00:03:38,400 mohou představovat. 78 00:03:38,400 --> 00:03:39,900 >> Takže co zbývá? 79 00:03:39,900 --> 00:03:43,130 No, ve dnech vývoje ASCII, dálnopisu 80 00:03:43,130 --> 00:03:45,080 stroje, které jsou psací, které se používají k 81 00:03:45,080 --> 00:03:48,040 odesílat zprávy přes síť, byly rozšířené. 82 00:03:48,040 --> 00:03:50,030 A tyto stroje měly další znaky používané k 83 00:03:50,030 --> 00:03:52,890 kontrolovat, například, říci, když se pohybovat 84 00:03:52,890 --> 00:03:57,620 tiskovou hlavu dolů řádku, posunu řádků nebo nový řádek klíč, 85 00:03:57,620 --> 00:04:00,440 když se přesunete do levého okraje, návrat vozíku, 86 00:04:00,440 --> 00:04:04,890 nebo jednoduše vrátit klíče, a když se vrátíte o jednu mezeru, 87 00:04:04,890 --> 00:04:07,760 backspace charakter, a tak dále. 88 00:04:07,760 --> 00:04:10,250 >> Tyto znaky se nazývají řídicí znaky, a 89 00:04:10,250 --> 00:04:12,680 tvoří zbytek sady ASCII. 90 00:04:12,680 --> 00:04:15,230 Takže pokud se podíváme na ASCII tabulky, zjistíme, že první 91 00:04:15,230 --> 00:04:18,800 32 čísel, nula až 31, jsou vyhrazena pro ovládání 92 00:04:18,800 --> 00:04:20,200 znaků. 93 00:04:20,200 --> 00:04:23,420 Ale my to prostě řekl, že to tam bylo 33 kontrolních znaků. 94 00:04:23,420 --> 00:04:24,780 O co jde? 95 00:04:24,780 --> 00:04:29,350 No, číslo nula a 127, první a poslední 96 00:04:29,350 --> 00:04:32,560 Znaková sada ASCII, mají zvláštní bitové vzory, všechny nuly a všechny 97 00:04:32,560 --> 00:04:34,710 ty, resp. 98 00:04:34,710 --> 00:04:36,860 >> Návrháři ASCII rozhodl proto, aby 99 00:04:36,860 --> 00:04:39,610 zachování těchto čísel pro další speciální znaky, 100 00:04:39,610 --> 00:04:43,310 sice null charakter a charakter DEL. 101 00:04:43,310 --> 00:04:46,340 Null a DEL byly určeny pro editaci děrné pásky, které používá 102 00:04:46,340 --> 00:04:48,930 být běžný způsob ukládání dat. 103 00:04:48,930 --> 00:04:51,850 Papírová páska byla doslova jen dlouhý pás papíru, a na 104 00:04:51,850 --> 00:04:53,760 v pravidelných intervalech na pásku, měli byste punč 105 00:04:53,760 --> 00:04:55,430 otvory pro ukládání dat. 106 00:04:55,430 --> 00:04:58,720 V závislosti na šířce pásky, každý sloupec se 107 00:04:58,720 --> 00:05:03,186 schopna pojmout pět, šest, sedm, nebo osm kousků. 108 00:05:03,186 --> 00:05:05,930 >> Chcete-li představují nulovou trochu, že nebudete dělat nic na pásku, měli byste 109 00:05:05,930 --> 00:05:07,930 nech mezeru. 110 00:05:07,930 --> 00:05:10,560 Pro jeden bit, byste díru. 111 00:05:10,560 --> 00:05:12,980 Null charakter by jen tak nechat prázdný sloupec, 112 00:05:12,980 --> 00:05:14,480 s uvedením všech nuly. 113 00:05:14,480 --> 00:05:17,250 A postava DEL by udeřil sloupec plný děr 114 00:05:17,250 --> 00:05:18,550 přes pásku. 115 00:05:18,550 --> 00:05:21,300 V důsledku toho, může použít znak DEL odstranit 116 00:05:21,300 --> 00:05:22,440 informace. 117 00:05:22,440 --> 00:05:25,060 Představte si, že vyplněný volební hlasování a poté 118 00:05:25,060 --> 00:05:27,180 děrování všech neděrované otvory. 119 00:05:27,180 --> 00:05:29,410 >> Můžete vyvrátit hlasovací lístek, protože to je nemožné, aby 120 00:05:29,410 --> 00:05:31,820 říct, co původní hlasy byly. 121 00:05:31,820 --> 00:05:34,720 Zatímco charakter DEL se stále používá, je moderní 122 00:05:34,720 --> 00:05:37,980 Odstranění klíče, nulový znak přišel být používán jako 123 00:05:37,980 --> 00:05:40,010 ukončovací znak pro řetězce C a 124 00:05:40,010 --> 00:05:41,990 některé další formáty dat. 125 00:05:41,990 --> 00:05:45,140 Můžete víte, že jako znak zpětného lomítka nulové, 126 00:05:45,140 --> 00:05:47,720 protože to je to, jak jsme ji zastupují v písemné formě. 127 00:05:47,720 --> 00:05:49,580 Takže zpět k našemu ASCII tabulky. 128 00:05:49,580 --> 00:05:52,770 Po prvních 32 řídicí znaky přijde 95 129 00:05:52,770 --> 00:05:54,280 tisknutelných znaků. 130 00:05:54,280 --> 00:05:55,800 >> Existuje několik skvělých rozhodnutí o návrhu stojí 131 00:05:55,800 --> 00:05:57,330 mluvil o tom tady. 132 00:05:57,330 --> 00:06:00,810 Za prvé, desetinná číslice znaky, nula až devět, 133 00:06:00,810 --> 00:06:04,050 odpovídají číslům 48 až 57, který se zdá být 134 00:06:04,050 --> 00:06:06,980 všední dokud se podíváme na čísla 48 až 57 135 00:06:06,980 --> 00:06:09,080 napsán v binárním zápisu. 136 00:06:09,080 --> 00:06:11,530 Pokud to uděláme, pak vidíme, že číslice znak, 137 00:06:11,530 --> 00:06:22,320 nula, odpovídá 0110000, jeden map do 0110001, dva 138 00:06:22,320 --> 00:06:26,640 0110010, a tak dále. 139 00:06:26,640 --> 00:06:27,950 Podívejte se na vzor? 140 00:06:27,950 --> 00:06:30,170 Každá číslice znak je mapována na jeho odpovídající 141 00:06:30,170 --> 00:06:35,170 ekvivalent v binární notaci, s předponou 011. 142 00:06:35,170 --> 00:06:38,820 Další na řadě, zjistíte, že velká písmena začínají na 65, 143 00:06:38,820 --> 00:06:41,310 s velkým A, ale malými písmeny 144 00:06:41,310 --> 00:06:43,010 se nespustí, dokud 97. 145 00:06:43,010 --> 00:06:45,580 Takže tam je 32 míst v mezi. 146 00:06:45,580 --> 00:06:47,000 To se zdá divné. 147 00:06:47,000 --> 00:06:49,500 Jsou jen 26 písmen v abecedě. 148 00:06:49,500 --> 00:06:51,410 >> Proč je rozdělit takto? 149 00:06:51,410 --> 00:06:53,960 Opět platí, že pokud se podíváme na binární reprezentace, můžeme 150 00:06:53,960 --> 00:06:55,230 viz vzor. 151 00:06:55,230 --> 00:07:01,360 Velká A je zastoupena 1000001, a malá písmena a je 152 00:07:01,360 --> 00:07:05,810 zastoupené 1100001. 153 00:07:05,810 --> 00:07:12,770 Velká písmena B je zastoupena 1000010, a malá b je 154 00:07:12,770 --> 00:07:17,280 zastoupené 1100010. 155 00:07:17,280 --> 00:07:19,440 Můžeš mi říct, co se tady děje? 156 00:07:19,440 --> 00:07:22,470 Bit, že je to druhá zleva, ve dvou až 157 00:07:22,470 --> 00:07:26,510 pětiny, pro 32ths pozici, je 0 pro všechny velká 158 00:07:26,510 --> 00:07:30,120 Písmena, a 1 pro všechny malými písmeny. 159 00:07:30,120 --> 00:07:33,130 >> To znamená, že převod z velká na malá písmena, 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 se dostáváme na konec ASCII tabulky. 162 00:07:38,380 --> 00:07:40,700 Vzpomenete si na něco jsme zapomněli? 163 00:07:40,700 --> 00:07:42,510 No, co španělské enye, nebo 164 00:07:42,510 --> 00:07:44,630 Řek nebo cyrilice? 165 00:07:44,630 --> 00:07:46,610 A co čínské znaky? 166 00:07:46,610 --> 00:07:49,050 Tam je hodně, že to bylo vynecháno ASCII. 167 00:07:49,050 --> 00:07:51,920 Nicméně, jiný standard nazvaný Unicode byla 168 00:07:51,920 --> 00:07:53,040 vyvinut pro pokrytí všech těchto 169 00:07:53,040 --> 00:07:54,840 postavy a mnoho dalších. 170 00:07:54,840 --> 00:07:57,040 >> Ale to je téma pro jinou dobu. 171 00:07:57,040 --> 00:07:58,500 Mé jméno je Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 To je CS50.