Дъг LLYOYD: Така шестнадесетични числа, като че ли ние нужда друга база брой схема нали? Е, повечето западни култури, както може би сте запознати, използвате десетичната system-- база 10, за да представляват числови данни. Имаме а цифрата 0, 1, 2, 3, 5, 6, 7,8,9. И ако ние трябва да представлява стойности по-високи от девет, ние можем да комбинираме тези цифри използване на понятието за място стойност. Така в продължение на 10, ние имаме 1 цифри, последван от 0 цифри и ние интуитивно разбират че това, което правим там е, че ние се умножи първата 1 с 10, и след това добавяне 0 в продължение на общо 10. Компютри направят нещо доста подобни, както може би сте запознати, с двоичен system-- основата 2. Разликата да е че има само 2 цифри да работят with-- 0 и 1. И така, нашето място стойности, вместо да бъде един, десет, сто, хиляда, тъй като те ще бъде в десетичната система, са един, два, четири, осем и така нататък. Ето нещо все пак, тези 0 и 1, особено ако сме в компютърните специалисти и правим много програмиране или работа с компютри, щяха да се виждаме много двоични числа. И тези, 0 и 1 е в големите вериги може да бъде много трудно да се направи разбор. Не можем просто да погледнете низ от 0 и 1 и да знае какво точно е това. Но тя все още е полезно да бъде в състояние експресни данни по същия начин, че прави компютър. Ние имаме тази идея на шестнайсетична система, която е база 16, вместо 10 база или основа 2. Което означава, че имаме 16 цифри да работи с вместо 10 или 2. И това е много по- кратък начин да изразя двоична информация в компютърна система, това е много по-човешки разбираемо. Така че ние имаме цифри От 0 до 9, и след това ние също имаме тези допълнителни шест digits-- а, В, С, D, Е и F, които представляват 10, нашата представа за 10, 11, 12, 13, 14 и 15, в знак. Понякога, между другото, вие също така ще виж това извеждащ F за столица A чрез F, което е най- начин Склонен съм да го направя. Това е просто моята предпочитана стил, но нито е добре, те представляват и двата доста много по едно и също нещо. Така че, защо е в шестнадесетичен вид готино? Защо имаме нужда да използвате тази друга допълнителна база? Ние вече имаме 2 и 10, защо имаме нужда от 16? Е 16 е с мощност от 2, и т.н. всеки шестнадесетичен цифрен, от 0 до F, съответства на уникален поръчка, или уникална конструкция на 4 двоични цифри, 4 бита. И така, в този смисъл, можем да изразим много дълги, сложни двоични числа в шестнадесетичен в много по-кратък начин, без да се губи информация или да се налага да направя особено тромави реализации на тези номера. Така че, както казах, всеки шестнадесетичен цифрен съответства на уникален подреждане на 4 двоични цифри. Така че двоичен низ 0000 съответства на шестнадесетичен цифра 0. 0110 съответства на шестнадесетичен цифра 6. И 1111 съответства да шестнадесетичен цифрен е. Ако търсите най- тази диаграма, особено ако търсите най- лявата страна на графиката, Вече можете да видите, че има малко на един проблем неяснота тук. Decimal 0 е доста много неразличим от шестнадесетичен 0, различни от факта, че това е по колона, която се казва в шестнадесетичен вид. Но ние вероятно винаги не ще имат тази колона там. По принцип, когато сме изразяване числа в шестнайсетична система да се направи ясно разграничение ги от десетична бройна система, ние обикновено ги префикс с префикса 0x. 0x означава нищо в действителност, това е просто представа за нас като хора че това, което ние сме на път да се види, или предстои да започне разбор, е шестнадесетично число. Очевидно за по-високите цифри A, B, С, D и F, които съответстват на 10-15 това е доста недвусмислено, че е това е шестнадесетично число. И в действителност, всеки шестнадесетичен номер, който има писма в нея, вероятно е доста очевидно, като шестнадесетично число. Но, все пак, за яснота, това е Винаги е добра идея да префикс всеки път, когато вижте цифра като шестнадесетичен брой от префикса 0x. Така че, двоичен, тъй като ние каза, има място ценности. Там е мястото, такива, а двама място, място, на четири крака, и осмици място. И десетичната също има място стойности, най- такива, десетки, стотици, а хиляди че всички ние може да си припомни от началното училище. И не е шестнадесетичен Изключение тук, наистина. Тя също има място стойности, но вместо това че са степени на 2 или правомощия на 10, те са правомощията на 16. Така ние виждаме редица харесват това ние доста ясно, че това е 397, нали? Ами ако ние виждаме редица по този начин, ние знаем, това вече не е 397. Това е шестнадесетично брой 3-9 седем. Това не е 397, това означава, нещо различно, защото ние сме с помощта на правомощия на 16 като всички на мястото ни ценности, вместо на правомощия 10. В действителност, място стойности тук ще бъдат тези, мястото, на sixteens мястото, и двеста петдесет и шестици мястото, която съответства на нашата идея за такива място, десетки място, а на стотици място, ако техният брой е бил 397. Но тъй като това е 0x 397, имаме един от тях място, sixteens място, и двеста петдесет и шестици място. Или, 16 до 0 място, което е 1. 16 на първата мощност мястото, 16. A 16 квадрат място, 256, и така нататък, и така нататък, и така нататък. Така че този номер е наистина 3 пъти 16 квадрат, плюс 9 пъти 16 плюс 7. Аз не направи по математика тук, но това не е 397, това е много, много по-голяма от тази. По същия начин, бихме могли да имаме 0x ADC, добре, че е пъти по 16 на квадрат. Или ако се преведе, че да представите ни на десетични числа, която е 10 пъти по- 16 квадрат, плюс г пъти 16, или 13 пъти, плюс 16. И не се притеснявайте, ако не са запомнени че г е 13, или нещо подобно, там не е твърде много писмо от тези цифри и това ще стане интуитивно доста бързо. Така че отново това е 10 пъти по 16 на квадрат, плюс 13 пъти 16, плюс 12 пъти 1. Така 0x ADC. Така че, както казах, всеки група от 4 двоични цифри съответства на единична шестнадесетичен цифрен, и така това е всъщност наистина лесно да се промени и назад между шестнадесетичен и двоичен. Ако имате този дълъг низ от двоични цифри, всичко, което трябва да направите, се започне групирането им полето да остави като групи от по четири. А след това можете да се консолидира тях в шестнадесетичен вид, силно ограничаване на броя на Цифрите трябва да обработим психически. Вместо 32 0 и 1 на, както ще видим в секунда, може да сте в състояние да го стигнете до само 8 шестнадесетични цифри, много по-кратки. Графиките няколко слайда назад няма да ви помогне да разбера това картографиране, въпреки че, отново ли ще я запомняте доста бързо. Ние ще мине през един пример точно сега. Така че, ако ние имаме редица по този начин, това наистина голяма двоично число, или това, което изглежда голям двоично число. И причината аз да кажа, че това е Просто so-- това е гигант, нали? Има толкова много за 0 и 1 е там. Но ние вероятно не правим наистина има чувство за това, което величината на този брой е наистина. Ние нямаме никаква представа какво е ще съответства на десетична. И всъщност ние дори няма да видите това, което съответства в десетичен точно сега. Може би ще успеем да изразя това по начин, който ще ни даде малко повече информация за това колко голям е този брой. Така че нека да отиде в тази процеса на конвертиране. Първото нещо, което трябва да направите, е да искаме да група тези цифри място в групи на 4, започвайки от правото и работи на ляво. Там се случи да бъде 32 цифри тук, което означава, имаме хубава чиста прекъсване от 8 групи от по четири. Не забравяйте, че всяка група 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. Е, добре, което сме научили нов готино умения, какъв е смисълът? Ние може да не се използва това през цялото време, тъй като ние ще се видим скоро, ние използваме доста шестнадесетичен много като програмисти. Не е задължително за целта на правене на математика с него, но тъй като много пъти памет адреси в нашата система са представени в шестнадесетичен вид. Това е наистина кратък начин да изразя иначе тромави, двоични числа. И така, отново, вие може not-- вие вероятно сте няма да направя някоя математика с него, не сте Ще бъде умножаване шестнадесетични числа заедно, или прави нещо странно подобно. Но това е полезно умение, за да получите така че можете да изразят и да разберат памет адреси, както и друга начини за използване на данни в C. Аз съм Дъг Лойд, това е CS50.