ДАГ LLYOYD: Так шестнадцатеричные числа, как если бы мы нуждались в другом базовый номер
Схема верно?
Ну, большинство западных культур, как вы, наверное знакомы,
использовать десятичную система-- базу 10, представлять числовые данные.
У нас есть цифры 0, 1, 2, 3, 5, 6, 7,8,9.
И если мы должны представлять ценит выше, чем девять,
мы можем объединить эти цифры используя понятие место значения.
Таким образом, для 10, у нас есть 1 значный сопровождается 0 цифре
и мы интуитивно понимают что то, что мы делаем
есть мы умножения первое 1 по 10,
а затем добавить 0 на сумму от 10.
Компьютеры сделать что-то красивое похоже, как вы, вероятно, знакомы,
с бинарном система-- основанием 2.
Разница есть время что есть только 2 цифры
на работу with-- 0 и 1.
И так наше место значения, вместо того, чтобы один,
десятков, сотен, тысяч, так как они будет в десятичной системе,
один, два, четыре, восемь, и так далее.
Вот вещь, хотя, эти 0 и 1, особенно
если мы быть компьютерные ученые и мы делаем много программирования
или при работе с компьютерами, шли чтобы видеть много двоичных чисел.
И эти 0 и 1 х в крупных сетей может быть очень трудно разобрать.
Мы не можем просто смотреть на строку 0 и 1. и обязательно знать
именно то, что он есть.
Но это все еще полезно иметь возможность представлять данные таким же образом,
что компьютер делает.
У нас есть понятие шестнадцатеричное система, которая
основание 16, а 10 или базовой базовой 2.
Это означает, что у нас есть 16 цифр для работы с вместо 10 или 2.
И это гораздо более краткий путь, чтобы выразить
двоичной информации в компьютерной системе, это гораздо более человек понятно.
Итак, мы имеем цифры От 0 до 9, а затем
у нас также есть эти дополнительные шесть digits-- а, B, C, D, E, F и, которые представляют 10,
наше понятие 10, 11, 12, 13, 14 и 15, в десятичной.
Иногда, кстати, вы будете также увидеть эти А до F в качестве капитала А
через F, который является как я, как правило, сделать это.
Это просто мой любимый стиль, но либо в порядке,
они оба представляют довольно много то же самое.
>> Так почему шестнадцатеричной круто?
Почему мы должны использовать это другая дополнительная база?
У нас уже есть 2 и 10, почему мы должны 16?
Ну 16 это сила 2, и так каждый шестнадцатеричная цифра, от 0 до F,
соответствует уникальным упорядочение или уникальное расположение
4 двоичных цифр, 4 бита.
И поэтому в этом смысле, мы можем выразить очень длинные, сложные, двоичные числа
в шестнадцатеричном в гораздо более краткий путь,
без потери информации или того, чтобы сделать особенно громоздкие преобразования
на этих чисел.
>> Так что, как я только что сказал, каждый шестнадцатеричная цифра
соответствует уникальным расположение 4 двоичных цифр.
Так в двоичной строки 0000 соответствует шестнадцатеричная цифра 0.
0110 соответствует шестнадцатеричная цифра 6.
И 1111 соответствует чтобы шестнадцатеричная цифра F.
Если вы смотрите на этот график, в частности,
если вы ищете на левая сторона графика,
Вы уже можете видеть, что есть немного задаче неоднозначности здесь.
Десятичная 0 в значительной степени неотличимы от шестнадцатеричном 0,
кроме того, что это под столбец, который говорит шестнадцатеричной.
>> Но мы, вероятно, не будет всегда есть что колонку есть.
Обычно, когда мы выражаем числа в шестнадцатеричной системе счисления
четко различать их от десятичной системе счисления,
мы, как правило, префикс их с префиксом 0x.
0x ничего не значит в реальности, это просто подсказка для нас, как людей
что то, что мы собираемся, чтобы увидеть, или собирается начать разбор,
это шестнадцатеричное число.
Очевидно, что для старших разрядов а, б, C, D, F и, которые соответствуют 10-15
это довольно однозначный, что это что это шестнадцатеричное число.
И в самом деле, любой шестнадцатеричный номер, который имеет письма в ней,
Вероятно, довольно очевидно, как шестнадцатеричное число.
Но, по-прежнему, для ясности, это
всегда хорошая идея, чтобы префикс каждый раз при
относятся к цифре в шестнадцатеричной Количество предваряя в 0x.
>> Так, двоичный, как мы сказал, имеет место значения.
Там это место те, А двоек место, четверки место, и восьмерок место.
И десятичной также место ценности, единицы, десятки, сотни и тысячи
что мы все, наверное, помните от начальной школе.
И шестнадцатеричной нет Исключение здесь, на самом деле.
Она также имеет место, но вместо этого значения бытия полномочий или полномочий 2 10,
они полномочия 16.
>> Таким образом, мы видим ряд как этого мы довольно четко знать, что это 397, верно?
Ну, если мы видим ряд, как это, мы знаем, что это не 397 больше.
Это шестнадцатеричное номер три-девять-семь.
Это не 397, это означает, что-то другое,
потому что мы используем полномочия 16 как все наши места вместо значений полномочий
10.
На самом деле, место значения здесь будет быть место те, место sixteens,
и двести пятьдесят шестерки место, которые соответствуют нашему представлению о них через
Место, десятки место, сотен и Место, если число было 397.
Но так как это 0x 397, у нас есть НСПДСБ, sixteens место,
и двести пятьдесят шестерки место.
Или, 16 к 0 месте, которое 1.
A 16 на первое место питания, 16.
A 16 квадрат место, 256 и так далее, и так далее, и так далее.
Таким образом, это число на самом деле 3 раз 16 квадрат, плюс 9 раз 16, плюс 7.
Я не делал математику здесь, но это не 397, это гораздо, гораздо больше, чем это.
>> Точно так же мы могли бы 0x АЦП, хорошо, что это раз 16 в квадрате.
Или, если мы переводим, что нашим представлениям десятичных чисел, что в 10 раз
16 в квадрате, плюс D раз 16 или плюс 13 раз 16.
И не волнуйтесь, если вы не запомнили что г составляет 13, или что-нибудь подобное,
там не слишком много из этих букв цифр
и это станет интуитивно довольно быстро.
Итак, еще раз это в 10 раз 16 в квадрате, плюс 13 раз 16 плюс 12 раз 1.
Так 0x АЦП.
>> Так что, как я уже сказал, каждый Группа 4 двоичных цифр
соответствует один шестнадцатеричная цифра,
и так что это на самом деле очень легко изменить и обратно
между шестнадцатеричной и двоичной.
Если у вас есть эта длинная строка двоичных цифр, все, что вам нужно сделать,
это начать группируя их право налево, как группы по 4.
И тогда вы можете объединить их в шестнадцатеричных чисел,
серьезно ограничивает число цифры, должны обработать умственно.
Вместо 32 0 и 1., как мы увидим в секунду,
Вы могли бы быть в состоянии получить его всего до 8 шестнадцатеричных цифр, много
более кратким.
>> Графики несколько слайдов обратно будет поможет вам выяснить это отображение,
хотя, опять же вы будете запомнить его довольно быстро.
Мы пойдем на примере прямо сейчас.
Так что, если у нас есть ряд, как это, это действительно большой двоичный номер,
или то, что, кажется, большой двоичный номер.
И почему я говорю, что это просто so-- это бегемот, верно?
Там так много 0 и 1 есть.
Но мы, вероятно, не действительно есть ощущение того, что
величина этого числа на самом деле.
Мы не имеем никакого представления, что это будет соответствовать десятичной.
И в самом деле, мы даже не увидите, что это соответствует в десятичной прямо сейчас.
Мы могли бы быть в состоянии выразить это таким образом, что
даст нам больше информации о том, насколько большой это число.
>> Итак, давайте в этот процесс преобразования.
Первое, что нам нужно сделать это, мы хотим, чтобы группы
эти цифры из групп в 4, начиная справа
и работает влево.
Там, оказывается, 32 цифр Здесь, это означает, мы имеем
хороший чистый прорыв 8 групп по 4.
Следует помнить, что каждой группе 4 здесь, однозначно соответствует
в шестнадцатеричную цифру.
Таким образом, мы начнем снова строить наши Количество справа, и рабочие оставили.
Ну что +1101?
Ну что мы делаем математику в нашей голове, у нас есть 1 в месте восьмерки, 1
в месте четвереньках, а 0 в двое Место и 1 в месте них.
Это 8 плюс 4 плюс 1, которые мы бы знали, как 13 лет.
Но мы, вероятно, не будет писать 13 из, потому что мы работаем с шестнадцатеричном виде.
Мы должны преобразовать его в шестнадцатеричном эквивалент 13, который является д.
>> 0011, хорошо, что это 0 в восьмерки место, 0 в четвереньках месте,
1 в дополнительном коде месте, и 1 в месте них.
Вот 3.
Я имею в виду продолжать делать это опять же, мы имеем здесь 9.
А потом 11, но это б, напомним.
2, 10-- или A-- 6 и 4.
И так, что очень большой строкой из 0 и 1 х годов в верхней
более лаконично выразил в шестнадцатеричном как 0x 46a2b93d.
>> Ну, хорошо, мы узнали новый круто мастерство, какой смысл?
Мы не могли использовать это все Время, как мы собираемся в ближайшее время увидеть,
мы используем довольно шестнадцатеричной много как программисты.
Не обязательно для Цель делать математику с ней,
а потому, что много раз адреса памяти в нашей системе
представлены в шестнадцатеричном формате.
Это действительно кратким способом выразить в противном случае громоздкие, двоичные числа.
И так, опять же, вы можете не-- вы, вероятно,
не собирается делать какие-либо математику с ним, вы не
будет умножения шестнадцатеричные числа вместе,
или делать что-нибудь странное, как, что.
Но это полезный навык иметь так что вы можете выражать и понимать
память адреса и другие способы использования данных в C.
>> Я Дуг Ллойд, это CS50.