1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Hardison: W wideo na binarny, pokażemy jak 2 00:00:09,290 --> 00:00:12,540 stanowią zbiór liczb całkowitych od zera w górę, 3 00:00:12,540 --> 00:00:15,110 używając tylko cyfry zero i jeden. 4 00:00:15,110 --> 00:00:17,890 W tym filmie, będziemy używać notacji binarnej 5 00:00:17,890 --> 00:00:21,160 reprezentowania tekstu, liter i takie, jak również. 6 00:00:21,160 --> 00:00:22,810 >> Dlaczego mielibyśmy przejmować to zrobić? 7 00:00:22,810 --> 00:00:25,450 Cóż, pod maską, tak naprawdę tylko komputer 8 00:00:25,450 --> 00:00:29,070 rozumie zer i jedynek, cyfry binarne, ponieważ są 9 00:00:29,070 --> 00:00:32,100 można łatwo reprezentowane elektromagnetycznych rzeczy. 10 00:00:32,100 --> 00:00:35,040 >> Na przykład, myślę o pamięci komputera, jak długo 11 00:00:35,040 --> 00:00:37,810 ciąg żarówek, przy czym każdy żarówka 12 00:00:37,810 --> 00:00:40,680 oznacza zero, jeśli jest wyłączony, a jeden 13 00:00:40,680 --> 00:00:42,230 jeśli jest włączony. 14 00:00:42,230 --> 00:00:44,730 Zamiast używać kilka żarówek, niektóre nowoczesne 15 00:00:44,730 --> 00:00:46,990 pamięć czy to przy użyciu kondensatorów, które posiadają niski 16 00:00:46,990 --> 00:00:49,120 ładować do reprezentowania zero i wysoki ładunek 17 00:00:49,120 --> 00:00:50,780 do reprezentowania jednego. 18 00:00:50,780 --> 00:00:52,510 >> Istnieją również inne techniki. 19 00:00:52,510 --> 00:00:55,500 W każdym razie, w celu zapisania w pamięci nic, musimy 20 00:00:55,500 --> 00:00:57,590 najpierw przekształcić go w coś, co może być w rzeczywistości 21 00:00:57,590 --> 00:01:00,140 przedstawione w sprzętowym. 22 00:01:00,140 --> 00:01:02,450 Warto więc zastanowić się, jak możemy reprezentować listów z 23 00:01:02,450 --> 00:01:04,230 zapis binarny. 24 00:01:04,230 --> 00:01:08,141 W języku angielskim mamy 26 liter w alfabetycznych, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, i tak dalej, aż do Z. Możemy przypisać każdy z 26 00:01:12,930 --> 00:01:16,650 Te liczby, np. od zera do 25, a następnie za pomocą 27 00:01:16,650 --> 00:01:18,880 Zapis binarny, możemy reprezentować każdą liczbę jako 28 00:01:18,880 --> 00:01:20,890 ciąg zer i jedynek. 29 00:01:20,890 --> 00:01:22,420 To nie jest tak źle. 30 00:01:22,420 --> 00:01:25,050 Jednak, że nie będzie wystarczająco. 31 00:01:25,050 --> 00:01:27,680 Z tego systemu, nie możemy właściwie odróżnić 32 00:01:27,680 --> 00:01:29,830 małe i duże litery. 33 00:01:29,830 --> 00:01:32,140 Jeśli chcemy, komputer w stanie odróżnić 34 00:01:32,140 --> 00:01:36,020 te dwie sprawy, to musimy dodatkowo 26 numerów. 35 00:01:36,020 --> 00:01:38,700 A co z okresów, przecinków i 36 00:01:38,700 --> 00:01:40,390 inne znaki interpunkcyjne? 37 00:01:40,390 --> 00:01:43,560 >> Na klawiaturze, mam 32 osób, w tym wszystkie 38 00:01:43,560 --> 00:01:46,800 znaki specjalne, takie jak karetki i Ampersand. 39 00:01:46,800 --> 00:01:49,700 To nie w tym samych cyfr, od zera do dziewięciu, 40 00:01:49,700 --> 00:01:51,840 ponieważ chcemy nadal być w stanie wpisać numery w decimal 41 00:01:51,840 --> 00:01:54,840 zapis na komputerze, nawet jeśli komputer tylko naprawdę 42 00:01:54,840 --> 00:01:57,830 rozumie notacji binarnej pod maską. 43 00:01:57,830 --> 00:02:00,620 >> I wreszcie, musimy reprezentować znak spacji tak 44 00:02:00,620 --> 00:02:02,450 że nasza Spacja działa. 45 00:02:02,450 --> 00:02:04,920 Więc dowiedzieć się, jak do reprezentacji tekstu na komputerze 46 00:02:04,920 --> 00:02:08,400 zajmuje trochę więcej niż moglibyśmy początkowo myślałem. 47 00:02:08,400 --> 00:02:11,710 Dodatkowo zakładamy, że wtedy wymyślić własnego kodowania 48 00:02:11,710 --> 00:02:14,560 Program do reprezentowania znaków jako liczby. 49 00:02:14,560 --> 00:02:17,470 Jednak zdecydujemy się kodować znaków, będzie nieuchronnie 50 00:02:17,470 --> 00:02:20,630 arbitralny, jak widzieliśmy wcześniej, kiedy rozmawialiśmy o użyciu 51 00:02:20,630 --> 00:02:23,730 numery od zera do 25 w celu reprezentowania liter 52 00:02:23,730 --> 00:02:26,850 do Z. Dlaczego nie użyć 10 przez 35, tak, że możemy zapisać 53 00:02:26,850 --> 00:02:29,350 od zera do dziewięciu na cyfrowych znaków? 54 00:02:29,350 --> 00:02:31,590 >> Nie ma prawdziwego powodu, po prostu wybierz co wydawało 55 00:02:31,590 --> 00:02:33,770 dla nas najlepsze. 56 00:02:33,770 --> 00:02:37,650 Powrót na początku 1960 roku, to był prawdziwy problem. 57 00:02:37,650 --> 00:02:39,370 Różni producenci komputerów używali 58 00:02:39,370 --> 00:02:41,910 różnych systemów kodowania, a to sprawiło, komunikacja 59 00:02:41,910 --> 00:02:44,340 różnych maszyn zadanie bardzo trudne. 60 00:02:44,340 --> 00:02:47,810 American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 utworzyła komisję do opracowania wspólnego systemu. 62 00:02:50,210 --> 00:02:53,780 A w 1963 roku, American Standard Code Informacji 63 00:02:53,780 --> 00:02:58,600 Interchange, bardziej znany jako ASCII, urodził. 64 00:02:58,600 --> 00:03:01,360 >> ASCII został zaprojektowany jako siedmio-bitowym kodowaniem, które 65 00:03:01,360 --> 00:03:03,800 Oznacza to, że każdy jest reprezentowany przez połączenie 66 00:03:03,800 --> 00:03:06,070 siedmiu zer i jedynek. 67 00:03:06,070 --> 00:03:09,670 Z tych dwóch możliwych wartości zero lub jeden, dla każdego 68 00:03:09,670 --> 00:03:14,040 siedmiu bitów, są dwa do siódmego lub 128 69 00:03:14,040 --> 00:03:16,120 znaków, które mogą być reprezentowane przez ASCII 70 00:03:16,120 --> 00:03:18,140 kodowanie programu. 71 00:03:18,140 --> 00:03:21,480 Więc 128 znaków brzmi jak dużo, prawda? 72 00:03:21,480 --> 00:03:24,180 Cóż, należy pamiętać, że istnieje 26 małych liter 73 00:03:24,180 --> 00:03:29,260 Angielski, kolejne 26 wielkie litery, znaki, cyfry 10 74 00:03:29,260 --> 00:03:31,470 32 interpunkcji i znaki specjalne, 75 00:03:31,470 --> 00:03:33,430 i jednym znaku. 76 00:03:33,430 --> 00:03:37,050 >> To stawia nas na 95, więc mamy kolejne 33 znaków, że mamy 77 00:03:37,050 --> 00:03:38,400 może reprezentować. 78 00:03:38,400 --> 00:03:39,900 >> Co więc pozostaje? 79 00:03:39,900 --> 00:03:43,130 Cóż, w czasach rozwoju ASCII, dalekopisowej 80 00:03:43,130 --> 00:03:45,080 maszyny, maszyny do pisania, które są używane do 81 00:03:45,080 --> 00:03:48,040 wysyłać wiadomości w sieci, były powszechne. 82 00:03:48,040 --> 00:03:50,030 A te maszyny miały dodatkowe znaki używane do 83 00:03:50,030 --> 00:03:52,890 kontrolować ich, na przykład, gdy ich powiedzieć przenieść 84 00:03:52,890 --> 00:03:57,620 wydrukować głową w dół linii, zasilanie linii lub linia, nowy klucz 85 00:03:57,620 --> 00:04:00,440 kiedy przejść do lewego marginesu, powrót karetki, 86 00:04:00,440 --> 00:04:04,890 lub po prostu zwrócić klucz i kiedy wrócić jednego pomieszczenia, 87 00:04:04,890 --> 00:04:07,760 znak backspace, i tak dalej. 88 00:04:07,760 --> 00:04:10,250 >> Znaki te są nazywane znaków sterujących, a oni 89 00:04:10,250 --> 00:04:12,680 resztę stanowi zestaw ASCII. 90 00:04:12,680 --> 00:04:15,230 Więc jeśli spojrzymy na ASCII tabeli widzimy, że pierwszy 91 00:04:15,230 --> 00:04:18,800 32 numerów, zero do 31 są zarezerwowane dla kontroli 92 00:04:18,800 --> 00:04:20,200 znaków. 93 00:04:20,200 --> 00:04:23,420 Ale po prostu powiedział, że nie było 33 kontroli znaków. 94 00:04:23,420 --> 00:04:24,780 O co chodzi? 95 00:04:24,780 --> 00:04:29,350 Cóż, liczba zero i 127, pierwszy i ostatni 96 00:04:29,350 --> 00:04:32,560 ASCII, mają specjalne wzorce bitowe, wszystkie zera i wszystko 97 00:04:32,560 --> 00:04:34,710 z nich, odpowiednio. 98 00:04:34,710 --> 00:04:36,860 >> Projektanci ASCII postanowił zatem 99 00:04:36,860 --> 00:04:39,610 zachować te numery, na dodatkowych znaków specjalnych, 100 00:04:39,610 --> 00:04:43,310 mianowicie znak null i znak DEL. 101 00:04:43,310 --> 00:04:46,340 Null i DEL są przeznaczone do montażu na taśmie papierowej, które kiedyś 102 00:04:46,340 --> 00:04:48,930 się popularnym sposobem przechowywania danych. 103 00:04:48,930 --> 00:04:51,850 Papierowa taśma była dosłownie długi pasek papieru, a na 104 00:04:51,850 --> 00:04:53,760 regularnych odstępach czasu na taśmie, można uderzyć 105 00:04:53,760 --> 00:04:55,430 otwory do przechowywania danych. 106 00:04:55,430 --> 00:04:58,720 W zależności od szerokości taśmy, każda kolumna będzie 107 00:04:58,720 --> 00:05:03,186 w stanie pomieścić pięć, sześć, siedem lub osiem bitów. 108 00:05:03,186 --> 00:05:05,930 >> Do reprezentowania zero trochę, że nie zrobisz nic do taśmy, to że 109 00:05:05,930 --> 00:05:07,930 zostawić puste miejsce. 110 00:05:07,930 --> 00:05:10,560 Na jeden bit, można uderzyć dziurę. 111 00:05:10,560 --> 00:05:12,980 Znak null byłoby zostawić pustą kolumnę, 112 00:05:12,980 --> 00:05:14,480 wskazując wszystkie zer. 113 00:05:14,480 --> 00:05:17,250 I znak DEL by uderzyć kolumnę pełna dziur 114 00:05:17,250 --> 00:05:18,550 pośrednictwem taśmy. 115 00:05:18,550 --> 00:05:21,300 W rezultacie, można użyć znaku DEL, aby usunąć 116 00:05:21,300 --> 00:05:22,440 informacje. 117 00:05:22,440 --> 00:05:25,060 Wyobraź sobie wypełnioną kartę do głosowania, a następnie wyborów 118 00:05:25,060 --> 00:05:27,180 wbicie wszystkich unpunched otwory. 119 00:05:27,180 --> 00:05:29,410 >> Możesz unieważnić głosowanie, bo to niemożliwe 120 00:05:29,410 --> 00:05:31,820 powiedzieć, co oryginalne głosy były. 121 00:05:31,820 --> 00:05:34,720 Choć znak DEL jest nadal używany jest nowoczesny 122 00:05:34,720 --> 00:05:37,980 Usunięcie klucza znak null zaczęto jako 123 00:05:37,980 --> 00:05:40,010 znak kończący na smyczki C i 124 00:05:40,010 --> 00:05:41,990 inne formaty danych. 125 00:05:41,990 --> 00:05:45,140 Może wiesz to jako znak zera odwrotnym ukośnikiem, 126 00:05:45,140 --> 00:05:47,720 ponieważ jest to w jaki sposób reprezentuje ją na piśmie. 127 00:05:47,720 --> 00:05:49,580 Więc z powrotem do naszego ASCII tabeli. 128 00:05:49,580 --> 00:05:52,770 Po pierwsze 32 znaki sterujące pochodzą z 95 129 00:05:52,770 --> 00:05:54,280 wydruku znaków. 130 00:05:54,280 --> 00:05:55,800 >> Istnieje kilka fajnych decyzje projektowe warto 131 00:05:55,800 --> 00:05:57,330 mówisz tutaj. 132 00:05:57,330 --> 00:06:00,810 Po pierwsze, liczba dziesiętna znaków, od zera do dziewięciu, 133 00:06:00,810 --> 00:06:04,050 odpowiadają numerom 48 przez 57, który wydaje 134 00:06:04,050 --> 00:06:06,980 nijaki, dopóki nie spojrzeć na liczby 48 przez 57 135 00:06:06,980 --> 00:06:09,080 napisany w zapisie binarnym. 136 00:06:09,080 --> 00:06:11,530 Jeśli to zrobimy, to widzimy, że cyfrowy charakter, 137 00:06:11,530 --> 00:06:22,320 zero odpowiada 0110000, jeden do 0110001 mapy, dwa do 138 00:06:22,320 --> 00:06:26,640 0110010, i tak dalej. 139 00:06:26,640 --> 00:06:27,950 Zobacz wzór? 140 00:06:27,950 --> 00:06:30,170 Każda cyfra znak jest mapowany na odpowiadający jej 141 00:06:30,170 --> 00:06:35,170 odpowiednik w zapisie dwójkowym, z prefiksem 011. 142 00:06:35,170 --> 00:06:38,820 Następna w kolejce, można zauważyć, że wielkie litery zaczynają się od 65, 143 00:06:38,820 --> 00:06:41,310 z wielkiej litery A, ale w małych liter 144 00:06:41,310 --> 00:06:43,010 nie zaczyna się aż do 97. 145 00:06:43,010 --> 00:06:45,580 Tak więc są 32 miejsca pomiędzy. 146 00:06:45,580 --> 00:06:47,000 To wydaje się dziwne. 147 00:06:47,000 --> 00:06:49,500 Oni są tylko 26 liter w alfabecie. 148 00:06:49,500 --> 00:06:51,410 >> Dlaczego podzielić je w ten sposób? 149 00:06:51,410 --> 00:06:53,960 Ponownie, jeśli spojrzymy na binarny, możemy 150 00:06:53,960 --> 00:06:55,230 patrz wzór. 151 00:06:55,230 --> 00:07:01,360 Wielkie jest reprezentowana przez 1000001, a małe jest 152 00:07:01,360 --> 00:07:05,810 reprezentowana przez 1100001. 153 00:07:05,810 --> 00:07:12,770 Duże litery B reprezentowany jest przez 1000010, i małe b jest 154 00:07:12,770 --> 00:07:17,280 reprezentowana przez 1100010. 155 00:07:17,280 --> 00:07:19,440 Czy możesz powiedzieć, co się tu dzieje? 156 00:07:19,440 --> 00:07:22,470 Bit to drugi od lewej, w dwóch do 157 00:07:22,470 --> 00:07:26,510 piąte, dla 32ths pozycji 0 dla wszystkich wielkich liter 158 00:07:26,510 --> 00:07:30,120 listów i 1 dla wszystkich małych liter. 159 00:07:30,120 --> 00:07:33,130 >> To oznacza, że ​​konwersja z wielkimi literami na małe i 160 00:07:33,130 --> 00:07:36,000 odwrotnie, jest sprawą prostą klapki bitowym. 161 00:07:36,000 --> 00:07:38,380 Tak, że daje nam końcu tabeli ASCII. 162 00:07:38,380 --> 00:07:40,700 Czy można myśleć o niczym zapomnieliśmy? 163 00:07:40,700 --> 00:07:42,510 A co z hiszpańskiego enye, lub 164 00:07:42,510 --> 00:07:44,630 Greckiego lub cyrylicy? 165 00:07:44,630 --> 00:07:46,610 A jak o chińskie znaki? 166 00:07:46,610 --> 00:07:49,050 Jest wiele, co zostało pominięte w ASCII. 167 00:07:49,050 --> 00:07:51,920 Jednak inny standard Unicode jest nazywana 168 00:07:51,920 --> 00:07:53,040 opracowany, aby pokryć wszystkie te 169 00:07:53,040 --> 00:07:54,840 znaków i wiele innych. 170 00:07:54,840 --> 00:07:57,040 >> Ale to temat na inny czas. 171 00:07:57,040 --> 00:07:58,500 Nazywam się Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 To CS50.