1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 Даг LLYOYD: Значи хексадецимални броеви, како да ни е потребно друга база број 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 користете децимална system-- база 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 со бинарни system-- база 2. 15 00:00:42,409 --> 00:00:44,700 Разликата таму да се биде дека постојат само 2 броја 16 00:00:44,700 --> 00:00:46,770 да работат with-- 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 ние, исто така, имаат овие дополнителни шест digits-- а, b, c, d, e, и f, кои претставуваат 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 Понекогаш, патем, ќе исто така види овие директно кон f како капитал А 37 00:01:59,787 --> 00:02:01,620 преку F, кој е начин се трудам да го направи тоа. 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 до f, 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 година се совпаѓа да хексадецимално цифрен f. 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 ние обично ги како префикс со префикс 0x. 64 00:03:31,860 --> 00:03:35,990 0x не значи ништо во реалноста, тоа е само поим за нас како луѓе 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 се однесуваат на некоја цифра како хексадецимални број со префиксот на 0x. 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 Има на оние место, twos место, место четири, а една осмици место. 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 Ова е хексадецимален број 3-9 и седум. 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 Всушност, местото вредности тука ќе бидат оние место, sixteens место, 89 00:04:50,570 --> 00:04:55,080 и две-100-50-sixes место, кои одговараат на нашата идеја за оние 90 00:04:55,080 --> 00:04:59,180 место, десетици место, и стотици место, ако бројот е 397. 91 00:04:59,180 --> 00:05:03,620 Но, бидејќи тоа е 0x 397, имаме на нивните места, sixteens место, 92 00:05:03,620 --> 00:05:05,780 и две-100-50-sixes место. 93 00:05:05,780 --> 00:05:09,460 Или, 16 на 0 место, што е 1. 94 00:05:09,460 --> 00:05:12,420 A 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 >> Слично на тоа, ние би можеле да имаат 0x ADC, Па тоа е 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 Па 0x ADC. 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 А причината велам дека, тоа е само so-- тоа е монструм, нели? 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 во twos место, и 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, кој е d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, и тоа е 0 во осмици место, 0 во четири место, 146 00:08:12,940 --> 00:08:15,190 1 во twos место, и 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-- или a-- 6, и 4. 151 00:08:30,570 --> 00:08:34,669 И така што многу голема низа од 0 и 1 е на врвот 152 00:08:34,669 --> 00:08:38,549 се повеќе изразени концизно во хексадецимален како 0x 46a2b93d. 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 И така, повторно, можеби not-- ти си веројатно 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 >> Јас сум Даг Лојд, ова е CS50. 168 00:09:26,240 --> 00:09:28,028