Даг LLYOYD: Так шаснаццаткавыя лікі, як калі б мы мелі патрэбу ў іншым базавы нумар
Схема дакладна?
Ну, большасць заходніх культур, як вы, напэўна знаёмыя,
выкарыстоўваць дзесятковую система-- базу 10, прадстаўляць лікавыя дадзеныя.
У нас ёсць лічбы 0, 1, 2, 3, 5, 6, 7,8,9.
І калі мы павінны прадстаўляць шануе вышэй, чым дзевяць,
мы можам аб'яднаць гэтыя лічбы выкарыстоўваючы паняцце месца значэння.
Такім чынам, для 10, у нас ёсць 1 значны суправаджаецца 0 лічбе
і мы інтуітыўна разумеюць што тое, што мы робім
ёсць мы множання 1 студзеня па 10,
а затым дадаць 0 на суму ад 10.
Кампутары зрабіць нешта прыгожае падобна, як вы, верагодна, знаёмыя,
з бінарным система-- падставай 2.
Розніца ёсць час што ёсць толькі 2 лічбы
на працу with-- 0 і 1.
І так наша месца значэння, замест таго, каб адзін,
дзесяткаў, соцень, тысяч, так як яны будзе ў дзесятковай сістэме,
адзін, два, чатыры, восем, і гэтак далей.
Вось рэч, хоць, гэтыя 0 і 1, асабліва
калі мы быць кампутарныя навукоўцы і мы робім шмат праграмавання
або пры працы з кампутарамі, ішлі каб бачыць шмат двайковых лікаў.
І гэтыя 0 і 1 х у буйных сетак можа быць вельмі цяжка разабраць.
Мы не можам проста глядзець на радок 0 і 1. і абавязкова ведаць
менавіта тое, што ён ёсць.
Але гэта ўсё яшчэ карысна мець магчымасць прадстаўляць дадзеныя такім жа чынам,
што кампутар робіць.
У нас ёсць паняцце шаснаццатковае сістэма, якая
падстава 16, а 10 ці базавай базавай 2.
Гэта азначае, што ў нас ёсць 16 лічбаў для працы з замест 10 ці 2.
І гэта значна больш кароткі шлях, каб выказаць
двайковай інфармацыі ў кампутарнай сістэме, гэта значна больш чалавек зразумела.
Такім чынам, мы маем лічбы Ад 0 да 9, а затым
у нас таксама ёсць гэтыя дадатковыя шэсць digits-- а, B, C, D, E, F і, якія прадстаўляюць 10,
наша паняцце 10, 11, 12, 13, 14 і 15, у дзесятковай.
Часам, дарэчы, вы будзеце таксама ўбачыць гэтыя А да F ў якасці капіталу А
праз F, які з'яўляецца як я, як правіла, зрабіць гэта.
Гэта проста мой любімы стыль, але альбо ў парадку,
яны абодва ўяўляюць даволі шмат тое ж самае.
>> Дык чаму шаснаццатковай крута?
Чаму мы павінны выкарыстоўваць гэта іншая дадатковая база?
У нас ужо ёсць 2 і 10, чаму мы павінны 16?
Ну 16 гэта сіла 2, і так кожны шаснаццатковы лічба, ад 0 да F,
адпавядае унікальным ўпарадкаванне або унікальнае размяшчэнне
4 двайковых лічбаў, 4 біта.
І таму ў гэтым сэнсе, мы можам выказаць вельмі доўгія, складаныя, двайковыя лікі
у шаснаццатковым ў значна больш кароткі шлях,
без страты інфармацыі ці таго, каб зрабіць асабліва грувасткія пераўтварэнні
на гэтых лікаў.
>> Так што, як я толькі што сказаў, кожны шаснаццатковы лічба
адпавядае унікальным размяшчэнне 4 двайковых лічбаў.
Так у двайковай радка 0000 адпавядае шаснаццатковы лічба 0.
0110 адпавядае шаснаццатковы лічба 6.
І 1111 адпавядае каб шаснаццатковы лічба F.
Калі вы глядзіце на гэты графік, у прыватнасці,
калі вы шукаеце на левы бок графіка,
Вы ўжо можаце бачыць, што ёсць трохі задачы неадназначнасці тут.
Дзесятковая 0 ў значнай ступені неадрозныя ад шаснаццатковым 0,
акрамя таго, што гэта пад слупок, які кажа шаснаццатковай.
>> Але мы, верагодна, не будзе заўсёды ёсць што калонку ёсць.
Звычайна, калі мы выказваем лікі ў шаснаццатковай сістэме злічэння
выразна адрозніваць іх ад дзесятковай сістэме злічэння,
мы, як правіла, прэфікс іх з прэфіксам 0x.
0x нічога не значыць у рэальнасці, гэта проста падказка для нас, як людзей
што тое, што мы збіраемся, каб убачыць, ці збіраецца пачаць разбор,
гэта шаснаццатковы лік.
Відавочна, што для старэйшых разрадаў а, бы, C, D, F і, якія адпавядаюць 10-15
гэта даволі адназначны, што гэта што гэта шаснаццатковы лік.
І на самай справе, любы шаснаццатковы нумар, які мае лісты ў ёй,
Верагодна, даволі відавочна, як шаснаццатковы лік.
Але, па-ранейшаму, для яснасці, гэта
заўсёды добрая ідэя, каб прэфікс кожны раз пры
ставяцца да лічбы ў шаснаццатковай Колькасць папярэднічаючы ў 0x.
>> Так, двайковы, як мы сказаў, мае месца значэння.
Там гэта месца тыя, А двоек месца, чацвёркі месца, і васьмёрак месца.
І дзесятковай таксама месца каштоўнасці, адзінкі, дзесяткі, сотні і тысячы
што мы ўсе, напэўна, памятаеце ад пачатковай школе.
І шаснаццатковай няма Выключэнне тут, на самай справе.
Яна таксама мае месца, але замест гэтага значэння быцця паўнамоцтваў або паўнамоцтваў лютага 10,
яны паўнамоцтвы 16.
>> Такім чынам, мы бачым шэраг як гэтага мы даволі дакладна ведаць, што гэта 397, праўда?
Ну, калі мы бачым шэраг, як гэта, мы ведаем, што гэта не 397 больш.
Гэта шаснаццатковае нумар тры-дзевяць-сем.
Гэта не 397, гэта азначае, нешта іншае,
таму што мы выкарыстоўваем паўнамоцтвы 16 як усе нашы месцы замест значэнняў паўнамоцтваў
10.
На самай справе, месца значэння тут будзе быць месца тыя, месца sixteens,
і дзьвесьце пяцьдзясят шасцёркі месца, якія адпавядаюць нашаму ўяўленню пра іх праз
Месца, дзесяткі месца, сотняў і Месца, калі лік было 397.
Але так як гэта 0x 397, у нас ёсць НСПДСБ, sixteens месца,
і дзьвесьце пяцьдзясят шасцёркі месца.
Або, 16 да 0 месцы, якое 1.
A 16 на першае месца харчавання, 16.
A 16 квадрат месца, 256 і гэтак далей, і гэтак далей, і гэтак далей.
Такім чынам, гэты лік на самай справе 3 разоў 16 квадрат, плюс 9 разоў 16, плюс 7.
Я не рабіў матэматыку тут, але гэта не 397, гэта значна, значна больш, чым гэта.
>> Сапраўды гэтак жа мы маглі б 0x АЛП, добра, што гэта раз 16 у квадраце.
Ці, калі мы перакладаем, што нашым уяўленням дзесятковых лікаў, што ў 10 разоў
16 у квадраце, плюс D раз 16 ці плюс 13 разоў 16.
І не хвалюйцеся, калі вы не запомнілі што г складае 13, або што-небудзь падобнае,
там не занадта шмат з гэтых літар лічбаў
і гэта стане інтуітыўна даволі хутка.
Такім чынам, яшчэ раз гэта ў 10 разоў 16 у квадраце, плюс 13 разоў 16 плюс 12 разоў 1.
Так 0x АЛП.
>> Так што, як я ўжо сказаў, кожны Група 4 двайковых лічбаў
адпавядае адзін шаснаццатковы лічба,
і так што гэта на самай справе вельмі лёгка змяніць і назад
паміж шаснаццатковай і двайковай.
Калі ў вас ёсць гэтая доўгая радок двайковых лічбаў, усё, што вам трэба зрабіць,
гэта пачаць групуючы іх права налева, як групы па 4.
І тады вы можаце аб'яднаць іх у шаснаццатковы лікаў,
сур'ёзна абмяжоўвае лік лічбы, павінны апрацаваць разумова.
Замест 32 0 і 1., як мы ўбачым у секунду,
Вы маглі б быць у стане атрымаць яго усяго да 8 шаснаццатковы лічбаў, шмат
больш кароткім.
>> Графікі некалькі слайдаў назад будзе дапаможа вам высветліць гэта адлюстраванне,
хоць, зноў жа вы будзеце запомніць яго даволі хутка.
Мы пойдзем на прыкладзе прама цяпер.
Так што, калі ў нас ёсць шэраг, як гэта, гэта сапраўды вялікі двайковы нумар,
або тое, што, здаецца, вялікі двайковы нумар.
І чаму я кажу, што гэта проста so-- гэта бегемот, праўда?
Там так шмат 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-- або A-- 6 і 4.
І так, што вельмі вялікі радком з 0 і 1 х гадоў у верхняй
больш лаканічна выказаў у шаснаццатковым як 0x 46a2b93d.
>> Ну, добра, мы даведаліся новы крута майстэрства, які сэнс?
Мы не маглі выкарыстоўваць гэта ўсё Час, як мы збіраемся ў бліжэйшы час ўбачыць,
мы выкарыстоўваем даволі шаснаццатковай шмат як праграмісты.
Не абавязкова для Мэта рабіць матэматыку з ёй,
а таму, што шмат разоў адрасы памяці ў нашай сістэме
прадстаўленыя ў шаснаццатковым фармаце.
Гэта сапраўды кароткім спосабам выказаць у адваротным выпадку грувасткія, двайковыя лікі.
І так, зноў жа, вы можаце не-- вы, верагодна,
не збіраецца рабіць якія-небудзь матэматыку з ім, вы не
будзе множання шаснаццаткавыя колькасці разам,
ці рабіць што-небудзь дзіўнае, як, што.
Але гэта карысны навык мець так што вы можаце выказваць і разумець
памяць адрасы і іншыя спосабы выкарыстання дадзеных у C.
>> Я Дуг Лойд, гэта CS50.