Даг ЛЛИОИД: Па хексадецимални бројеви, као да нам је био потребан још један број базе
шема зар не?
Па, већина западних култура, као што вероватно сте упознати,
користе децимални систем-- базу 10, да представљају нумеричке податке.
Имамо цифре 0, 1, 2, 3, 5, 6, 7,8,9.
А ако треба да представља вредности већи од девет,
можемо да комбинујемо те цифре користећи појам место вредности.
Тако за 10 имамо 1 цифра праћено 0 цифром
и ми разумемо интуитивно да је оно што ми радимо
постоји смо множењем прво 1 за 10,
а затим додавањем 0 за укупно 10.
Компјутери уради нешто лепо слично, као што вероватно сте упознати,
са бинарном систем-- основом 2.
Разлика постоји као да постоје само 2 цифре
да раде са-- 0 и 1.
И тако наши место вриједности, уместо да буду један,
десет, сто, хиљаду, као што су би у децималном систему,
су један, два, четири, осам, и тако даље.
Овде је ствар, те 0 и 1, посебно
ако ћемо бити компјутерских научника и ми радимо пуно програмирања
или рад са компјутерима, ишли да види пуно бинарним бројевима.
И ти 0-а и 1 је у великим ланцима може бити веома тешко да анализирам.
Не можемо да погледамо у низу 0 је и 1 је и нужно знати
тачно шта је то.
Али ипак је корисно бити у могућности екпресс података на исти начин
да рачунар ради.
Ми имамо тај појам хексадецимална систем, који је
база 16, уместо простих 10 или базног 2.
Што значи да ћемо имати 16 цифара за рад са уместо 10 или 2.
И то је много више концизан начин да изразимо
бинарни информације о рачунарског система, то је много више људско разумљиво.
Дакле, имамо цифре 0 до 9, а затим
Такође имамо ове екстра шест дигитс-- а, Б, Ц, Д, Е, Ф и, који представљају 10,
наш појам 10, 11, 12, 13, 14 и 15, у децимале.
Понекад, узгред, такође ћете погледајте ове од А до Ф као главном А
кроз Ф, која је Како ја имају тенденцију да то уради.
То је само моја предност стил, али ни је у реду,
Обојица су прилично представљају много иста ствар.
>> Зашто је хексадецимална кул?
Зашто морамо да користимо ово друга додатна база?
Ми већ имамо 2 и 10, зашто ми треба 16?
Па 16 је моћ 2, и тако сваки ХЕКС број, 0 путем ф,
одговара јединствена наручивање, или јединствен аранжман
од 4 бинарних цифара, 4 бита.
И тако у том смислу, можемо изразити веома дуг, сложен, бинарни број
у хексадецималном Ин а много концизан начин,
без губитка информација или потребе да урадите посебно компликовану конверзије
на оним бројевима.
>> Дакле, као што сам рекао, сваки ХЕКС број
одговара јединствена распоред 4 бинарних цифара.
Дакле, бинарни стринг 0000 одговара хексадецималном цифром 0.
0110 одговара хексадецималном цифром 6.
И 1111 одговара да хексадецималном цифре ф.
Ако гледате ова табела, посебно
ако гледате лева страна графикона,
већ видим ту је помало проблем двосмисленост овде.
0 децимални је прилично разликовати од хексадецималном 0,
осим чињенице да је у колона која каже Хекадецимал.
>> Али вероватно неће увек има ли ту колону.
Генерално, када смо изражава бројеве у хексадецималном
јасно разликовати их од децималном запису,
ми их обично префикс са префиксом 0к.
0к ништа не значи у стварности, то је само траг за нас као људи
да је оно што ћете видети, или да почне парсинг,
је хексадекадни број.
Очигледно за виших цифре а, б, ц, д, и ф, који одговара 10-15
то је прилично недвосмислено да је то је хексадекадни број.
И, у ствари, било хексадецимална број који има слова у њој,
је вероватно прилично очигледно као хексадецималном броју.
Али, ипак, за Ради јасноће, то је
Увек је добра идеја да префикс сваки пут када
односе се на цифру као хексадецималне Број од префикса а 0к.
>> Дакле, бинарни, као што рекао је, има плаце вредности.
Ту је оних место, Твос место, четворке место, и осмице место.
И децимале има вредности место, Онес, десетине, стотине и хиљаде
да можемо сви сетити из основне школе.
И хексадецимална постоји Изузетак овде, стварно.
Она такође има вредности месту, али уместо да буде овлашћења 2 или овлашћења 10,
они су овлашћења 16.
>> Дакле, видимо велики број као што је овај и ми Прилично јасно знам да је 397, зар не?
Па ако видимо бројне овако, знамо да ово није 397 више.
Ово је хексадецимална број три-девет-седам.
Није 397, то значи нешто другачије,
јер ми користимо моћ 16 као све наших вредности месту уместо власти
10.
У ствари, вриједности место овде би бити они место, Сиктеенс место,
и две стотине педесет-шестице место, који одговарају нашем идеју о онима
место, десетине место, и још стотине место, ако је број био 397.
Али пошто је то 0к 397, имамо Онес место, Сиктеенс место,
и две стотине педесет-шестице место.
Или, 16 до 0 мјесто, што је 1.
А 16 на првом месту за напајање, 16.
А 16 квадрат место, 256, и тако даље, и тако даље, и тако даље.
Дакле, овај број је заиста 3 пута 16 квадрат, плус 9 пута 16 плус 7.
Нисам урадио математику овде, али то није 397, то је много, много већи од тога.
>> Слично томе, можемо имати 0к АДЦ, и то је раз 16 квадрат.
Или ако преведемо то нашем појму децималних бројева, то је 10 пута
16 квадрат, плус д пута 16 или 13. плус раз 16.
И не брините ако нисте запамтио да д је 13, или нешто слично,
нема превише ових цифара слова
и то ће постати интуитивно веома брзо.
Дакле, да поновим ово је 10 пута 16 на квадрат, плус 13 пута 16, плус 12 пута 1.
Тако 0к АДЦ.
>> Дакле, као што сам рекао, сваки Група 4 бинарних цифара
одговара један ХЕКС број,
па то је заправо стварно лако и назад променити
између хек и бинарни.
Ако имате ову дуги низ бинарних цифара, све што треба да урадите
се почнете да их груписање у праву на лево као група од 4.
А онда можете консолидовати их у хексадецималних бројева,
озбиљно ограничава број Цифре морате да ментално обради.
Уместо 32 0 а и 1 је, као што ћемо видети у секунди,
можда ћете моћи да га доле да само 8 хексадецималном запису, много
више концизан.
>> Табеле неколико слајдова леђа ће вам помоћи да схватите ову мапирање,
мада, опет ти ћеш запамтите то прилично брзо.
Ми ћемо проћи кроз пример сада.
Дакле, ако имамо велики број овако, ово је стварно велики бинарни број,
или како се чини, велики бинарни број.
А разлог зашто сам то рекао, то је Само Дакле-- то је гигант, зар не?
Има толико 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-- или а-- 6, и 4.
И то веома велики низ од 0 и 1 је тих година врх
је више концизно изразио у хексадецималном као 0к 46а2б93д.
>> Па, добро, сазнали смо нова кул вештина, у чему је поента?
Ми не може да користи ово све време, као што ћемо ускоро видети,
користимо Хекадецимал сасвим доста као програмери.
Не мора да значи за Сврха ради математику са њом,
али зато много пута меморијске адресе у нашем систему
су заступљени у хексадецималном.
То је стварно концизан начин да изразимо иначе гломазан, бинарни бројеви.
И тако, опет, иоу маи нисам-- Вероватно си
неће направити никакву математику с тим, нисте
Биће множењем хексадецимални бројеви заједно,
или ради нешто чудно тако.
Али то је корисна вештина имати тако да могу да изразе и разумети
меморије адресе, и друге начини коришћења података у Ц.
>> Ја сам Доуг Ллоид, ово је ЦС50.