ДАГ 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.
І 1 111 відповідає щоб шістнадцяткова цифра F.
Якщо ви дивитеся на цей графік, зокрема,
якщо ви шукаєте на ліва сторона графіка,
Ви вже можете бачити, що є трохи завданню неоднозначності тут.
Десяткова 0 в значній мірі не відрізняються від шістнадцятковому 0,
крім того, що це під стовпець, який говорить шістнадцятковій.
>> Але ми, ймовірно, не буде завжди є що колонку є.
Зазвичай, коли ми висловлюємо числа в шістнадцятковій системі числення
чітко розрізняти їх від десяткової системі числення,
ми, як правило, префікс їх з префіксом 0x.
0x нічого не означає в реальності, це просто підказка для нас, як людей
що те, що ми збираємося, щоб побачити, або збирається почати розбір,
це шістнадцяткове число.
Очевидно, що для старших розрядів а, б, C, D, F і, які відповідають 10-15
це досить однозначний, що це що це шістнадцяткове число.
І справді, будь шістнадцятковий номер, який має листи в ній,
Ймовірно, досить очевидно, як шістнадцяткове число.
Але, як і раніше, для ясності, це
завжди гарна ідея, щоб префікс кожен раз при
відносяться до цифри в шістнадцятковій Кількість випереджаючи в 0x.
>> Так, двійковий, як ми сказав, має місце значення.
Там це місце ті, А двійок місце, четвірки місце, і вісімок місце.
І десяткової також місце цінності, одиниці, десятки, сотні й тисячі
що ми всі, напевно, пам'ятаєте від початковій школі.
І шістнадцятковій немає Виняток тут, насправді.
Вона також має місце, але замість цього значення буття повноважень або повноважень 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.