1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 ДАГ LLYOYD: Так шестнадцатеричные числа, как если бы мы нуждались в другом базовый номер 3 00:00:08,510 --> 00:00:09,970 Схема верно? 4 00:00:09,970 --> 00:00:13,000 Ну, большинство западных культур, как вы, наверное знакомы, 5 00:00:13,000 --> 00:00:16,560 использовать десятичную система-- базу 10, представлять числовые данные. 6 00:00:16,560 --> 00:00:20,520 У нас есть цифры 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 И если мы должны представлять ценит выше, чем девять, 8 00:00:23,890 --> 00:00:26,800 мы можем объединить эти цифры используя понятие место значения. 9 00:00:26,800 --> 00:00:30,115 Таким образом, для 10, у нас есть 1 значный сопровождается 0 цифре 10 00:00:30,115 --> 00:00:32,240 и мы интуитивно понимают что то, что мы делаем 11 00:00:32,240 --> 00:00:35,500 есть мы умножения первое 1 по 10, 12 00:00:35,500 --> 00:00:37,689 а затем добавить 0 на сумму от 10. 13 00:00:37,689 --> 00:00:40,480 Компьютеры сделать что-то красивое похоже, как вы, вероятно, знакомы, 14 00:00:40,480 --> 00:00:42,409 с бинарном система-- основанием 2. 15 00:00:42,409 --> 00:00:44,700 Разница есть время что есть только 2 цифры 16 00:00:44,700 --> 00:00:46,770 на работу with-- 0 и 1. 17 00:00:46,770 --> 00:00:49,033 И так наше место значения, вместо того, чтобы один, 18 00:00:49,033 --> 00:00:52,600 десятков, сотен, тысяч, так как они будет в десятичной системе, 19 00:00:52,600 --> 00:00:57,690 один, два, четыре, восемь, и так далее. 20 00:00:57,690 --> 00:01:00,842 Вот вещь, хотя, эти 0 и 1, особенно 21 00:01:00,842 --> 00:01:03,800 если мы быть компьютерные ученые и мы делаем много программирования 22 00:01:03,800 --> 00:01:06,924 или при работе с компьютерами, шли чтобы видеть много двоичных чисел. 23 00:01:06,924 --> 00:01:11,660 И эти 0 и 1 х в крупных сетей может быть очень трудно разобрать. 24 00:01:11,660 --> 00:01:16,610 Мы не можем просто смотреть на строку 0 и 1. и обязательно знать 25 00:01:16,610 --> 00:01:17,810 именно то, что он есть. 26 00:01:17,810 --> 00:01:21,980 Но это все еще полезно иметь возможность представлять данные таким же образом, 27 00:01:21,980 --> 00:01:23,480 что компьютер делает. 28 00:01:23,480 --> 00:01:26,580 У нас есть понятие шестнадцатеричное система, которая 29 00:01:26,580 --> 00:01:29,840 основание 16, а 10 или базовой базовой 2. 30 00:01:29,840 --> 00:01:34,420 Это означает, что у нас есть 16 цифр для работы с вместо 10 или 2. 31 00:01:34,420 --> 00:01:37,180 И это гораздо более краткий путь, чтобы выразить 32 00:01:37,180 --> 00:01:41,210 двоичной информации в компьютерной системе, это гораздо более человек понятно. 33 00:01:41,210 --> 00:01:43,520 Итак, мы имеем цифры От 0 до 9, а затем 34 00:01:43,520 --> 00:01:49,480 у нас также есть эти дополнительные шесть digits-- а, B, C, D, E, F и, которые представляют 10, 35 00:01:49,480 --> 00:01:56,050 наше понятие 10, 11, 12, 13, 14 и 15, в десятичной. 36 00:01:56,050 --> 00:01:59,787 Иногда, кстати, вы будете также увидеть эти А до F в качестве капитала А 37 00:01:59,787 --> 00:02:01,620 через F, который является как я, как правило, сделать это. 38 00:02:01,620 --> 00:02:04,560 Это просто мой любимый стиль, но либо в порядке, 39 00:02:04,560 --> 00:02:07,870 они оба представляют довольно много то же самое. 40 00:02:07,870 --> 00:02:09,090 >> Так почему шестнадцатеричной круто? 41 00:02:09,090 --> 00:02:11,580 Почему мы должны использовать это другая дополнительная база? 42 00:02:11,580 --> 00:02:14,310 У нас уже есть 2 и 10, почему мы должны 16? 43 00:02:14,310 --> 00:02:21,650 Ну 16 это сила 2, и так каждый шестнадцатеричная цифра, от 0 до F, 44 00:02:21,650 --> 00:02:25,440 соответствует уникальным упорядочение или уникальное расположение 45 00:02:25,440 --> 00:02:29,060 4 двоичных цифр, 4 бита. 46 00:02:29,060 --> 00:02:34,570 И поэтому в этом смысле, мы можем выразить очень длинные, сложные, двоичные числа 47 00:02:34,570 --> 00:02:36,440 в шестнадцатеричном в гораздо более краткий путь, 48 00:02:36,440 --> 00:02:41,080 без потери информации или того, чтобы сделать особенно громоздкие преобразования 49 00:02:41,080 --> 00:02:42,480 на этих чисел. 50 00:02:42,480 --> 00:02:44,880 >> Так что, как я только что сказал, каждый шестнадцатеричная цифра 51 00:02:44,880 --> 00:02:48,630 соответствует уникальным расположение 4 двоичных цифр. 52 00:02:48,630 --> 00:02:53,670 Так в двоичной строки 0000 соответствует шестнадцатеричная цифра 0. 53 00:02:53,670 --> 00:03:00,340 0110 соответствует шестнадцатеричная цифра 6. 54 00:03:00,340 --> 00:03:05,225 И 1111 соответствует чтобы шестнадцатеричная цифра F. 55 00:03:05,225 --> 00:03:07,100 Если вы смотрите на этот график, в частности, 56 00:03:07,100 --> 00:03:09,099 если вы ищете на левая сторона графика, 57 00:03:09,099 --> 00:03:11,970 Вы уже можете видеть, что есть немного задаче неоднозначности здесь. 58 00:03:11,970 --> 00:03:15,229 Десятичная 0 в значительной степени неотличимы от шестнадцатеричном 0, 59 00:03:15,229 --> 00:03:18,020 кроме того, что это под столбец, который говорит шестнадцатеричной. 60 00:03:18,020 --> 00:03:22,130 >> Но мы, вероятно, не будет всегда есть что колонку есть. 61 00:03:22,130 --> 00:03:25,420 Обычно, когда мы выражаем числа в шестнадцатеричной системе счисления 62 00:03:25,420 --> 00:03:28,130 четко различать их от десятичной системе счисления, 63 00:03:28,130 --> 00:03:31,860 мы, как правило, префикс их с префиксом 0x. 64 00:03:31,860 --> 00:03:35,990 0x ничего не значит в реальности, это просто подсказка для нас, как людей 65 00:03:35,990 --> 00:03:39,190 что то, что мы собираемся, чтобы увидеть, или собирается начать разбор, 66 00:03:39,190 --> 00:03:40,750 это шестнадцатеричное число. 67 00:03:40,750 --> 00:03:45,590 Очевидно, что для старших разрядов а, б, C, D, F и, которые соответствуют 10-15 68 00:03:45,590 --> 00:03:48,840 это довольно однозначный, что это что это шестнадцатеричное число. 69 00:03:48,840 --> 00:03:51,620 И в самом деле, любой шестнадцатеричный номер, который имеет письма в ней, 70 00:03:51,620 --> 00:03:54,642 Вероятно, довольно очевидно, как шестнадцатеричное число. 71 00:03:54,642 --> 00:03:56,350 Но, по-прежнему, для ясности, это 72 00:03:56,350 --> 00:03:58,290 всегда хорошая идея, чтобы префикс каждый раз при 73 00:03:58,290 --> 00:04:01,835 относятся к цифре в шестнадцатеричной Количество предваряя в 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Так, двоичный, как мы сказал, имеет место значения. 76 00:04:06,810 --> 00:04:10,040 Там это место те, А двоек место, четверки место, и восьмерок место. 77 00:04:10,040 --> 00:04:13,640 И десятичной также место ценности, единицы, десятки, сотни и тысячи 78 00:04:13,640 --> 00:04:15,910 что мы все, наверное, помните от начальной школе. 79 00:04:15,910 --> 00:04:18,050 И шестнадцатеричной нет Исключение здесь, на самом деле. 80 00:04:18,050 --> 00:04:22,660 Она также имеет место, но вместо этого значения бытия полномочий или полномочий 2 10, 81 00:04:22,660 --> 00:04:25,050 они полномочия 16. 82 00:04:25,050 --> 00:04:29,410 >> Таким образом, мы видим ряд как этого мы довольно четко знать, что это 397, верно? 83 00:04:29,410 --> 00:04:33,420 Ну, если мы видим ряд, как это, мы знаем, что это не 397 больше. 84 00:04:33,420 --> 00:04:36,730 Это шестнадцатеричное номер три-девять-семь. 85 00:04:36,730 --> 00:04:39,680 Это не 397, это означает, что-то другое, 86 00:04:39,680 --> 00:04:44,180 потому что мы используем полномочия 16 как все наши места вместо значений полномочий 87 00:04:44,180 --> 00:04:45,560 10. 88 00:04:45,560 --> 00:04:50,570 На самом деле, место значения здесь будет быть место те, место sixteens, 89 00:04:50,570 --> 00:04:55,080 и двести пятьдесят шестерки место, которые соответствуют нашему представлению о них через 90 00:04:55,080 --> 00:04:59,180 Место, десятки место, сотен и Место, если число было 397. 91 00:04:59,180 --> 00:05:03,620 Но так как это 0x 397, у нас есть НСПДСБ, sixteens место, 92 00:05:03,620 --> 00:05:05,780 и двести пятьдесят шестерки место. 93 00:05:05,780 --> 00:05:09,460 Или, 16 к 0 месте, которое 1. 94 00:05:09,460 --> 00:05:12,420 A 16 на первое место питания, 16. 95 00:05:12,420 --> 00:05:17,080 A 16 квадрат место, 256 и так далее, и так далее, и так далее. 96 00:05:17,080 --> 00:05:24,400 Таким образом, это число на самом деле 3 раз 16 квадрат, плюс 9 раз 16, плюс 7. 97 00:05:24,400 --> 00:05:28,980 Я не делал математику здесь, но это не 397, это гораздо, гораздо больше, чем это. 98 00:05:28,980 --> 00:05:34,050 >> Точно так же мы могли бы 0x АЦП, хорошо, что это раз 16 в квадрате. 99 00:05:34,050 --> 00:05:38,220 Или, если мы переводим, что нашим представлениям десятичных чисел, что в 10 раз 100 00:05:38,220 --> 00:05:44,160 16 в квадрате, плюс D раз 16 или плюс 13 раз 16. 101 00:05:44,160 --> 00:05:47,410 И не волнуйтесь, если вы не запомнили что г составляет 13, или что-нибудь подобное, 102 00:05:47,410 --> 00:05:49,201 там не слишком много из этих букв цифр 103 00:05:49,201 --> 00:05:52,820 и это станет интуитивно довольно быстро. 104 00:05:52,820 --> 00:05:59,800 Итак, еще раз это в 10 раз 16 в квадрате, плюс 13 раз 16 плюс 12 раз 1. 105 00:05:59,800 --> 00:06:03,640 Так 0x АЦП. 106 00:06:03,640 --> 00:06:07,750 >> Так что, как я уже сказал, каждый Группа 4 двоичных цифр 107 00:06:07,750 --> 00:06:10,000 соответствует один шестнадцатеричная цифра, 108 00:06:10,000 --> 00:06:12,570 и так что это на самом деле очень легко изменить и обратно 109 00:06:12,570 --> 00:06:14,690 между шестнадцатеричной и двоичной. 110 00:06:14,690 --> 00:06:18,310 Если у вас есть эта длинная строка двоичных цифр, все, что вам нужно сделать, 111 00:06:18,310 --> 00:06:21,320 это начать группируя их право налево, как группы по 4. 112 00:06:21,320 --> 00:06:26,550 И тогда вы можете объединить их в шестнадцатеричных чисел, 113 00:06:26,550 --> 00:06:30,910 серьезно ограничивает число цифры, должны обработать умственно. 114 00:06:30,910 --> 00:06:33,680 Вместо 32 0 и 1., как мы увидим в секунду, 115 00:06:33,680 --> 00:06:37,630 Вы могли бы быть в состоянии получить его всего до 8 шестнадцатеричных цифр, много 116 00:06:37,630 --> 00:06:39,200 более кратким. 117 00:06:39,200 --> 00:06:43,500 >> Графики несколько слайдов обратно будет поможет вам выяснить это отображение, 118 00:06:43,500 --> 00:06:45,660 хотя, опять же вы будете запомнить его довольно быстро. 119 00:06:45,660 --> 00:06:47,320 Мы пойдем на примере прямо сейчас. 120 00:06:47,320 --> 00:06:51,507 Так что, если у нас есть ряд, как это, это действительно большой двоичный номер, 121 00:06:51,507 --> 00:06:53,340 или то, что, кажется, большой двоичный номер. 122 00:06:53,340 --> 00:06:56,260 И почему я говорю, что это просто so-- это бегемот, верно? 123 00:06:56,260 --> 00:06:58,959 Там так много 0 и 1 есть. 124 00:06:58,959 --> 00:07:01,000 Но мы, вероятно, не действительно есть ощущение того, что 125 00:07:01,000 --> 00:07:02,870 величина этого числа на самом деле. 126 00:07:02,870 --> 00:07:06,150 Мы не имеем никакого представления, что это будет соответствовать десятичной. 127 00:07:06,150 --> 00:07:09,744 И в самом деле, мы даже не увидите, что это соответствует в десятичной прямо сейчас. 128 00:07:09,744 --> 00:07:11,660 Мы могли бы быть в состоянии выразить это таким образом, что 129 00:07:11,660 --> 00:07:15,640 даст нам больше информации о том, насколько большой это число. 130 00:07:15,640 --> 00:07:17,270 >> Итак, давайте в этот процесс преобразования. 131 00:07:17,270 --> 00:07:19,311 Первое, что нам нужно сделать это, мы хотим, чтобы группы 132 00:07:19,311 --> 00:07:23,050 эти цифры из групп в 4, начиная справа 133 00:07:23,050 --> 00:07:24,120 и работает влево. 134 00:07:24,120 --> 00:07:27,260 Там, оказывается, 32 цифр Здесь, это означает, мы имеем 135 00:07:27,260 --> 00:07:33,210 хороший чистый прорыв 8 групп по 4. 136 00:07:33,210 --> 00:07:36,200 Следует помнить, что каждой группе 4 здесь, однозначно соответствует 137 00:07:36,200 --> 00:07:37,760 в шестнадцатеричную цифру. 138 00:07:37,760 --> 00:07:42,080 Таким образом, мы начнем снова строить наши Количество справа, и рабочие оставили. 139 00:07:42,080 --> 00:07:44,890 Ну что +1101? 140 00:07:44,890 --> 00:07:49,220 Ну что мы делаем математику в нашей голове, у нас есть 1 в месте восьмерки, 1 141 00:07:49,220 --> 00:07:54,310 в месте четвереньках, а 0 в двое Место и 1 в месте них. 142 00:07:54,310 --> 00:07:58,820 Это 8 плюс 4 плюс 1, которые мы бы знали, как 13 лет. 143 00:07:58,820 --> 00:08:02,400 Но мы, вероятно, не будет писать 13 из, потому что мы работаем с шестнадцатеричном виде. 144 00:08:02,400 --> 00:08:07,982 Мы должны преобразовать его в шестнадцатеричном эквивалент 13, который является д. 145 00:08:07,982 --> 00:08:12,940 >> 0011, хорошо, что это 0 в восьмерки место, 0 в четвереньках месте, 146 00:08:12,940 --> 00:08:15,190 1 в дополнительном коде месте, и 1 в месте них. 147 00:08:15,190 --> 00:08:16,880 Вот 3. 148 00:08:16,880 --> 00:08:20,180 Я имею в виду продолжать делать это опять же, мы имеем здесь 9. 149 00:08:20,180 --> 00:08:23,850 А потом 11, но это б, напомним. 150 00:08:23,850 --> 00:08:30,570 2, 10-- или A-- 6 и 4. 151 00:08:30,570 --> 00:08:34,669 И так, что очень большой строкой из 0 и 1 х годов в верхней 152 00:08:34,669 --> 00:08:38,549 более лаконично выразил в шестнадцатеричном как 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> Ну, хорошо, мы узнали новый круто мастерство, какой смысл? 155 00:08:45,870 --> 00:08:49,560 Мы не могли использовать это все Время, как мы собираемся в ближайшее время увидеть, 156 00:08:49,560 --> 00:08:52,370 мы используем довольно шестнадцатеричной много как программисты. 157 00:08:52,370 --> 00:08:55,060 Не обязательно для Цель делать математику с ней, 158 00:08:55,060 --> 00:08:58,470 а потому, что много раз адреса памяти в нашей системе 159 00:08:58,470 --> 00:09:00,440 представлены в шестнадцатеричном формате. 160 00:09:00,440 --> 00:09:04,390 Это действительно кратким способом выразить в противном случае громоздкие, двоичные числа. 161 00:09:04,390 --> 00:09:06,440 И так, опять же, вы можете не-- вы, вероятно, 162 00:09:06,440 --> 00:09:07,640 не собирается делать какие-либо математику с ним, вы не 163 00:09:07,640 --> 00:09:09,848 будет умножения шестнадцатеричные числа вместе, 164 00:09:09,848 --> 00:09:11,770 или делать что-нибудь странное, как, что. 165 00:09:11,770 --> 00:09:16,120 Но это полезный навык иметь так что вы можете выражать и понимать 166 00:09:16,120 --> 00:09:23,290 память адреса и другие способы использования данных в C. 167 00:09:23,290 --> 00:09:26,240 >> Я Дуг Ллойд, это CS50. 168 00:09:26,240 --> 00:09:28,028