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 выкарыстоўваць дзесятковую система-- базу 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 на працу 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 Відавочна, што для старэйшых разрадаў а, бы, C, D, F і, якія адпавядаюць 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 Там гэта месца тыя, А двоек месца, чацвёркі месца, і васьмёрак месца. 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 Яна таксама мае месца, але замест гэтага значэння быцця паўнамоцтваў або паўнамоцтваў лютага 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 На самай справе, месца значэння тут будзе быць месца тыя, месца sixteens, 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 Але так як гэта 0x 397, у нас ёсць НСПДСБ, sixteens месца, 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 A 16 на першае месца харчавання, 16. 95 00:05:12,420 --> 00:05:17,080 A 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 АЛП, добра, што гэта раз 16 у квадраце. 99 00:05:34,050 --> 00:05:38,220 Ці, калі мы перакладаем, што нашым уяўленням дзесятковых лікаў, што ў 10 разоў 100 00:05:38,220 --> 00:05:44,160 16 у квадраце, плюс D раз 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 АЛП. 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 на двое Месца і 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-- або 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 І так, зноў жа, вы можаце не-- вы, верагодна, 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 памяць адрасы і іншыя спосабы выкарыстання дадзеных у C. 167 00:09:23,290 --> 00:09:26,240 >> Я Дуг Лойд, гэта CS50. 168 00:09:26,240 --> 00:09:28,028