1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 Даг ЛЛИОИД: Па хексадецимални бројеви, као да нам је био потребан још један број базе 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 да раде са-- 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 Такође имамо ове екстра шест дигитс-- а, Б, Ц, Д, Е, Ф и, који представљају 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 Понекад, узгред, такође ћете погледајте ове од А до Ф као главном А 37 00:01:59,787 --> 00:02:01,620 кроз Ф, која је Како ја имају тенденцију да то уради. 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 путем ф, 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 одговара да хексадецималном цифре ф. 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 ми их обично префикс са префиксом 0к. 64 00:03:31,860 --> 00:03:35,990 0к ништа не значи у стварности, то је само траг за нас као људи 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 Очигледно за виших цифре а, б, ц, д, и ф, који одговара 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 односе се на цифру као хексадецималне Број од префикса а 0к. 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 У ствари, вриједности место овде би бити они место, Сиктеенс место, 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 Али пошто је то 0к 397, имамо Онес место, Сиктеенс место, 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 А 16 на првом месту за напајање, 16. 95 00:05:12,420 --> 00:05:17,080 А 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 >> Слично томе, можемо имати 0к АДЦ, и то је раз 16 квадрат. 99 00:05:34,050 --> 00:05:38,220 Или ако преведемо то нашем појму децималних бројева, то је 10 пута 100 00:05:38,220 --> 00:05:44,160 16 квадрат, плус д пута 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 Тако 0к АДЦ. 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 А разлог зашто сам то рекао, то је Само Дакле-- то је гигант, зар не? 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-- или а-- 6, и 4. 151 00:08:30,570 --> 00:08:34,669 И то веома велики низ од 0 и 1 је тих година врх 152 00:08:34,669 --> 00:08:38,549 је више концизно изразио у хексадецималном као 0к 46а2б93д. 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 меморије адресе, и друге начини коришћења података у Ц. 167 00:09:23,290 --> 00:09:26,240 >> Ја сам Доуг Ллоид, ово је ЦС50. 168 00:09:26,240 --> 00:09:28,028