1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Хардисон: В видео на двоичные, мы покажем, как 2 00:00:09,290 --> 00:00:12,540 Представим множество целых чисел от нуля на вверх, 3 00:00:12,540 --> 00:00:15,110 используя только цифры нулем и единицей. 4 00:00:15,110 --> 00:00:17,890 В этом видео, мы собираемся использовать в двоичной системе счисления 5 00:00:17,890 --> 00:00:21,160 представляют собой текст, буквы и такие, как хорошо. 6 00:00:21,160 --> 00:00:22,810 >> Зачем мы вообще это сделать? 7 00:00:22,810 --> 00:00:25,450 Ну, под капотом, компьютер только действительно 8 00:00:25,450 --> 00:00:29,070 понимает нулей и единиц, двоичных цифр, так как эти 9 00:00:29,070 --> 00:00:32,100 может быть представлена ​​в легко с электромагнитным вещи. 10 00:00:32,100 --> 00:00:35,040 >> Например, думать о памяти компьютера, как долго 11 00:00:35,040 --> 00:00:37,810 Строка из лампочек, причем каждый отдельный лампы 12 00:00:37,810 --> 00:00:40,680 представляет собой нуль, если она выключена, и один 13 00:00:40,680 --> 00:00:42,230 если он включен. 14 00:00:42,230 --> 00:00:44,730 Вместо кучей лампочек, некоторые современные 15 00:00:44,730 --> 00:00:46,990 памяти делает это, используя конденсаторы, которые держат низкий 16 00:00:46,990 --> 00:00:49,120 поручить представлять нуля и высокий заряд 17 00:00:49,120 --> 00:00:50,780 представляют один. 18 00:00:50,780 --> 00:00:52,510 >> Есть и другие методы, а также. 19 00:00:52,510 --> 00:00:55,500 Во всяком случае, для того, чтобы хранить все в памяти, мы должны 20 00:00:55,500 --> 00:00:57,590 сначала преобразовать его в нечто, что может быть на самом деле 21 00:00:57,590 --> 00:01:00,140 представлен в физическом оборудовании. 22 00:01:00,140 --> 00:01:02,450 Так что давайте думать о том, как мы могли бы представлять письма с 23 00:01:02,450 --> 00:01:04,230 двоичной системе счисления. 24 00:01:04,230 --> 00:01:08,141 В английском языке, у нас есть 26 букв в алфавитном,, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, и так далее, вплоть до Z. Мы можем присвоить каждому из 26 00:01:12,930 --> 00:01:16,650 это число, скажем от нуля до 25, а затем с помощью 27 00:01:16,650 --> 00:01:18,880 двоичной системе счисления, мы можем представить каждое число в виде 28 00:01:18,880 --> 00:01:20,890 последовательность нулей и единиц. 29 00:01:20,890 --> 00:01:22,420 Это не так уж плохо. 30 00:01:22,420 --> 00:01:25,050 Тем не менее, это не будет достаточно. 31 00:01:25,050 --> 00:01:27,680 С помощью этой системы, мы не можем на самом деле различие между 32 00:01:27,680 --> 00:01:29,830 строчные и прописные буквы. 33 00:01:29,830 --> 00:01:32,140 Если мы хотим, чтобы наш компьютер, чтобы иметь возможность различать 34 00:01:32,140 --> 00:01:36,020 двух случаев, то нам нужно еще 26 числа. 35 00:01:36,020 --> 00:01:38,700 А как насчет периодов, запятые и 36 00:01:38,700 --> 00:01:40,390 других знаков препинания? 37 00:01:40,390 --> 00:01:43,560 >> На моей клавиатуре, я получил 32 из них, в том числе все 38 00:01:43,560 --> 00:01:46,800 специальные символы, такие как вставки и амперсанд. 39 00:01:46,800 --> 00:01:49,700 Это не считая цифровых символов, от нуля до девяти, 40 00:01:49,700 --> 00:01:51,840 так как мы все еще хотим, чтобы иметь возможность ввода цифр в десятичной 41 00:01:51,840 --> 00:01:54,840 обозначений на компьютере, даже если компьютер только действительно 42 00:01:54,840 --> 00:01:57,830 понимает двоичной системе счисления под капотом. 43 00:01:57,830 --> 00:02:00,620 >> И, наконец, мы должны представлять собой пространство характер, так 44 00:02:00,620 --> 00:02:02,450 что наши Space Bar работает. 45 00:02:02,450 --> 00:02:04,920 Так, выясняя, как для представления текста на компьютере 46 00:02:04,920 --> 00:02:08,400 занимает немного больше, чем мы могли подумать изначально. 47 00:02:08,400 --> 00:02:11,710 Кроме того, предположим, что мы тогда придумали наши собственные кодировки 48 00:02:11,710 --> 00:02:14,560 Схема для представления символов в виде чисел. 49 00:02:14,560 --> 00:02:17,470 Однако мы решили для кодирования символов неизбежно будет 50 00:02:17,470 --> 00:02:20,630 произвольной, как мы видели ранее, когда мы говорили об использовании 51 00:02:20,630 --> 00:02:23,730 Номера нуля до 25 представляют буквы 52 00:02:23,730 --> 00:02:26,850 до Z. Почему бы не использовать от 10 до 35, так что мы можем спасти 53 00:02:26,850 --> 00:02:29,350 от нуля до девяти для цифровых символов? 54 00:02:29,350 --> 00:02:31,590 >> Там нет реальной причины, мы просто выбрали все, что казалось 55 00:02:31,590 --> 00:02:33,770 лучше для нас. 56 00:02:33,770 --> 00:02:37,650 Еще в начале 1960-х годов, это была реальная проблема. 57 00:02:37,650 --> 00:02:39,370 Разные производители компьютеров используют 58 00:02:39,370 --> 00:02:41,910 различных схем кодирования, и это сделало связь 59 00:02:41,910 --> 00:02:44,340 между различными машинами очень трудной задачей. 60 00:02:44,340 --> 00:02:47,810 Американский Национальный Институт Стандартов, ANSI, 61 00:02:47,810 --> 00:02:50,210 сформирован комитет по разработке общей схемы. 62 00:02:50,210 --> 00:02:53,780 А в 1963 году американский стандартный код для информации 63 00:02:53,780 --> 00:02:58,600 Interchange, более известный как ASCII, родился. 64 00:02:58,600 --> 00:03:01,360 >> ASCII был разработан как семь-битной кодировке, которая 65 00:03:01,360 --> 00:03:03,800 означает, что каждый символ представляет собой комбинацию 66 00:03:03,800 --> 00:03:06,070 семь нулей и единиц. 67 00:03:06,070 --> 00:03:09,670 С учетом этих двух возможных значений, нуль или один, для каждого 68 00:03:09,670 --> 00:03:14,040 из семи битов, есть два до седьмого или 128 69 00:03:14,040 --> 00:03:16,120 символов, которые могут быть представлены ASCII 70 00:03:16,120 --> 00:03:18,140 схемы кодирования. 71 00:03:18,140 --> 00:03:21,480 Так что 128 символов звучит, как много, верно? 72 00:03:21,480 --> 00:03:24,180 Ну, помните, что существует 26 строчных букв в 73 00:03:24,180 --> 00:03:29,260 Английский, еще 26 заглавных букв, 10 цифр, символов, 74 00:03:29,260 --> 00:03:31,470 32 знаков препинания и специальные символы, 75 00:03:31,470 --> 00:03:33,430 и один пробел. 76 00:03:33,430 --> 00:03:37,050 >> Это ставит нас на 95, так что у нас есть еще 33 символов, что мы 77 00:03:37,050 --> 00:03:38,400 может представлять. 78 00:03:38,400 --> 00:03:39,900 >> Так что же остается? 79 00:03:39,900 --> 00:03:43,130 Ну, во времена развития ASCII, телетайпной 80 00:03:43,130 --> 00:03:45,080 Машины, которые пишущие машинки, которые используются для 81 00:03:45,080 --> 00:03:48,040 посылать сообщения по сети, были широко распространены. 82 00:03:48,040 --> 00:03:50,030 И эти машины имели дополнительные символы, используемые для 83 00:03:50,030 --> 00:03:52,890 управлять ими, например, сказать им, когда для перемещения 84 00:03:52,890 --> 00:03:57,620 печатающей головки вниз линию, питающую линию или новый ключевой линией, 85 00:03:57,620 --> 00:04:00,440 , когда для перехода к левому краю, возврат каретки, 86 00:04:00,440 --> 00:04:04,890 или просто вернуть ключ, и когда вернуться одном пространстве, 87 00:04:04,890 --> 00:04:07,760 Возврат на один символ, и так далее. 88 00:04:07,760 --> 00:04:10,250 >> Эти символы называются управляющие символы, и они 89 00:04:10,250 --> 00:04:12,680 составляют остальную часть ASCII набор. 90 00:04:12,680 --> 00:04:15,230 Таким образом, если мы посмотрим на таблицу ASCII, мы видим, что первые 91 00:04:15,230 --> 00:04:18,800 32 номера, от нуля до 31, зарезервированы для контроля 92 00:04:18,800 --> 00:04:20,200 символы. 93 00:04:20,200 --> 00:04:23,420 Но мы только что сказали, что были 33 символов управления. 94 00:04:23,420 --> 00:04:24,780 В чем дело? 95 00:04:24,780 --> 00:04:29,350 Ну, ноль и 127, первый и последний из 96 00:04:29,350 --> 00:04:32,560 ASCII набор, есть специальные модели немного, все нули и все 97 00:04:32,560 --> 00:04:34,710 те, соответственно. 98 00:04:34,710 --> 00:04:36,860 >> Дизайнеры решили ASCII, следовательно, 99 00:04:36,860 --> 00:04:39,610 сохранить эти номера за дополнительные специальные символы, 100 00:04:39,610 --> 00:04:43,310 а именно нулевой символ и символ DEL. 101 00:04:43,310 --> 00:04:46,340 Null и DEL были предназначены для бумажной ленты редактирования, в котором используется 102 00:04:46,340 --> 00:04:48,930 чтобы быть распространенным способом хранения данных. 103 00:04:48,930 --> 00:04:51,850 Бумажная лента была буквально в длинную полоску бумаги, и на 104 00:04:51,850 --> 00:04:53,760 Регулярно на ленту, вы бы пробить 105 00:04:53,760 --> 00:04:55,430 отверстий для хранения данных. 106 00:04:55,430 --> 00:04:58,720 В зависимости от ширины ленты, каждая колонка будет 107 00:04:58,720 --> 00:05:03,186 в состоянии вместить пять, шесть, семь или восемь бит. 108 00:05:03,186 --> 00:05:05,930 >> Для представления нулевой бит, ты бы ничего не делать на ленту, вы бы 109 00:05:05,930 --> 00:05:07,930 просто оставить пустое пространство. 110 00:05:07,930 --> 00:05:10,560 Для одного бита, вы бы пробить отверстие. 111 00:05:10,560 --> 00:05:12,980 Нулевой символ будет просто оставить пустой колонку, 112 00:05:12,980 --> 00:05:14,480 с указанием всех нулей. 113 00:05:14,480 --> 00:05:17,250 И характер DEL бы пробить колонку дырявое 114 00:05:17,250 --> 00:05:18,550 через вашу ленту. 115 00:05:18,550 --> 00:05:21,300 В результате, вы можете использовать символ DEL, чтобы удалить 116 00:05:21,300 --> 00:05:22,440 информацию. 117 00:05:22,440 --> 00:05:25,060 Представьте себе, принимая заполненный избирательный бюллетень, а затем 118 00:05:25,060 --> 00:05:27,180 пробивая все unpunched отверстия. 119 00:05:27,180 --> 00:05:29,410 >> Вы недействительным голосование, потому что это невозможно 120 00:05:29,410 --> 00:05:31,820 сказать, что оригинальные голоса были. 121 00:05:31,820 --> 00:05:34,720 В то время как символ DEL-прежнему используется современная 122 00:05:34,720 --> 00:05:37,980 Удалите ключ, нулевой символ стал использоваться в качестве 123 00:05:37,980 --> 00:05:40,010 символ завершения для строк C и 124 00:05:40,010 --> 00:05:41,990 некоторые другие форматы данных. 125 00:05:41,990 --> 00:05:45,140 Вы можете знать его как символ нуля обратную косую черту, 126 00:05:45,140 --> 00:05:47,720 так это то, как мы представляем его в письменном виде. 127 00:05:47,720 --> 00:05:49,580 Итак, вернемся к нашим ASCII таблицы. 128 00:05:49,580 --> 00:05:52,770 После первых 32 символов контроля и управления 95- 129 00:05:52,770 --> 00:05:54,280 печатаемых символов. 130 00:05:54,280 --> 00:05:55,800 >> Есть несколько прохладно дизайнерских решений стоит 131 00:05:55,800 --> 00:05:57,330 говорим здесь. 132 00:05:57,330 --> 00:06:00,810 Во-первых, десятичных цифр, символов, от нуля до девяти, 133 00:06:00,810 --> 00:06:04,050 соответствуют номерам с 48 по 57, который, кажется, 134 00:06:04,050 --> 00:06:06,980 ничем не примечательный, пока мы не посмотрим на цифры 48 по 57 135 00:06:06,980 --> 00:06:09,080 написано в двоичной системе счисления. 136 00:06:09,080 --> 00:06:11,530 Если мы это сделаем, то мы видим, что цифрой, 137 00:06:11,530 --> 00:06:22,320 нулю, соответствует 0110000, одной карты на 0110001, от двух до 138 00:06:22,320 --> 00:06:26,640 0110010, и так далее. 139 00:06:26,640 --> 00:06:27,950 См. образец? 140 00:06:27,950 --> 00:06:30,170 Каждая цифра характер отображается на соответствующей 141 00:06:30,170 --> 00:06:35,170 эквивалент в двоичной системе счисления, с префиксом 011. 142 00:06:35,170 --> 00:06:38,820 Затем, вы заметите, что заглавные буквы начинаются с 65, 143 00:06:38,820 --> 00:06:41,310 с заглавной буквы, но строчные буквы 144 00:06:41,310 --> 00:06:43,010 не начинаются до 97. 145 00:06:43,010 --> 00:06:45,580 Таким образом, имеется 32 пространств между ними. 146 00:06:45,580 --> 00:06:47,000 Это кажется странным. 147 00:06:47,000 --> 00:06:49,500 Они только 26 букв в алфавите. 148 00:06:49,500 --> 00:06:51,410 >> Почему разделить их, как это? 149 00:06:51,410 --> 00:06:53,960 Опять же, если мы посмотрим на двоичных представлений, мы можем 150 00:06:53,960 --> 00:06:55,230 см. шаблон. 151 00:06:55,230 --> 00:07:01,360 Прописные представлена ​​1000001, а нижний является 152 00:07:01,360 --> 00:07:05,810 представлены 1100001. 153 00:07:05,810 --> 00:07:12,770 Прописные B представлена ​​1000010, и строчные Ъ 154 00:07:12,770 --> 00:07:17,280 представлены 1100010. 155 00:07:17,280 --> 00:07:19,440 Можете ли вы сказать, что здесь происходит? 156 00:07:19,440 --> 00:07:22,470 Бит, который уже второй слева, в два- 157 00:07:22,470 --> 00:07:26,510 пятых, для 32ths положение, равно 0 для всех прописных 158 00:07:26,510 --> 00:07:30,120 буквы, и 1 для всех строчных букв. 159 00:07:30,120 --> 00:07:33,130 >> Это означает, что преобразования из верхнего регистра в нижний регистр, и 160 00:07:33,130 --> 00:07:36,000 наоборот, это вопрос простой флип-бит. 161 00:07:36,000 --> 00:07:38,380 Так что подводит нас к концу ASCII таблицы. 162 00:07:38,380 --> 00:07:40,700 Можете ли вы вспомнить все, что мы забыли? 163 00:07:40,700 --> 00:07:42,510 Ну, что об испанском enye, или 164 00:07:42,510 --> 00:07:44,630 Греческие или кириллица? 165 00:07:44,630 --> 00:07:46,610 А как насчет китайских иероглифов? 166 00:07:46,610 --> 00:07:49,050 Там очень много который остался из ASCII. 167 00:07:49,050 --> 00:07:51,920 Однако, другой стандарт под названием Unicode была 168 00:07:51,920 --> 00:07:53,040 разработана, чтобы покрыть все эти 169 00:07:53,040 --> 00:07:54,840 символы и многое другое. 170 00:07:54,840 --> 00:07:57,040 >> Но это тема для другого времени. 171 00:07:57,040 --> 00:07:58,500 Меня зовут Нейт Хардисон. 172 00:07:58,500 --> 00:08:00,650 Это CS50.