Даг LLYOYD: Значи хексадецимални броеви, како да ни е потребно друга база број
Шемата нели?
Добро, повеќето западните култури, како што веројатно се запознаени,
користете децимална system-- база 10, да го претставува нумерички податоци.
Имаме на бројки 0, 1, 2, 3, 5, 6, 7,8,9.
И ако ние треба да претставуваат вредности повисоки од девет,
можеме да се комбинираат тие бројки користење на поимот на местото вредност.
Значи за 10, имаме 1 цифрениот проследено со 0 цифрениот
и ние интуитивно се разбере дека она што го правиме
постои ние сме множење прв 1 од 10,
и потоа додавање на 0 за вкупно 10.
Компјутери се направи нешто убаво слично, како што веројатно сте запознаени,
со бинарни system-- база 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 не значи ништо во реалноста, тоа е само поим за нас како луѓе
дека она што ние сме за да се види, или за да се започне парсирањето,
е број хексадецимални.
Очигледно за повисоките бројки а, б, в, г, ѓ, кои кореспондираат со 10-15
тоа е прилично недвосмислени тоа е тоа е хексадецимален број.
И всушност, било хексадецимален број што има писма во него,
веројатно е прилично очигледно како хексадецимален број.
Но, сепак, за јасност, тоа е
е секогаш добра идеја да се префикс за секој пат кога ќе
се однесуваат на некоја цифра како хексадецимални број со префиксот на 0x.
>> Значи, бинарни, како што кажа, има место вредности.
Има на оние место, twos место, место четири, а една осмици место.
И децимални исто така, има место вредности, единици, десетки, стотици и илјадници
дека сите ние може да се потсетиме од основно училиште.
И хексадецимален постои исклучок тука, навистина.
Исто така, има место вредности но наместо на се овластувањата на 2 или овластувањата на 10,
тие се овластувањата на 16.
>> Па ќе видиме голем број вака ние прилично јасно да знаат дека тоа е 397, нели?
И ако видиме голем број, како таков, ние знаеме дека тоа веќе не е 397.
Ова е хексадецимален број 3-9 и седум.
Тоа не е 397, тоа значи нешто различно,
бидејќи ние сме користење на овластувањата на 16 како и сите на нашето место вредности наместо на власта
од 10.
Всушност, местото вредности тука ќе бидат оние место, sixteens место,
и две-100-50-sixes место, кои одговараат на нашата идеја за оние
место, десетици место, и стотици место, ако бројот е 397.
Но, бидејќи тоа е 0x 397, имаме на нивните места, sixteens место,
и две-100-50-sixes место.
Или, 16 на 0 место, што е 1.
A 16 до првата моќ место, 16.
А 16 квадрат место, 256, и така натаму, и така натаму, и така натаму.
Па овој број е навистина 3 пати 16 квадрат, плус 9 пати 16, плус 7.
Јас не го направите математика тука, но тоа не е 397, тоа е многу, многу поголема од тоа.
>> Слично на тоа, ние би можеле да имаат 0x ADC, Па тоа е 16 пати квадрат.
Или ако би сакале да се преведе дека нашата идеја на децимални броеви, што е 10 пати
16 на квадрат, плус г пати 16, или 13 плус 16 пати.
И не грижете се ако не сте го меморира дека г е 13, или нешто слично,
таму не е премногу на овие букви цифри
и тоа ќе стане интуитивен прилично брзо.
Значи, повторно, ова е 10 пати 16 на квадрат, плус 13 пати 16, плус 12 пати 1.
Па 0x ADC.
>> Значи, како што реков, секој група од 4 бинарни цифри
одговара на еден хексадецимални цифри,
и така тоа е, всушност, навистина лесно да се промени и назад
помеѓу хексадецимален и бинарен.
Ако имате оваа долга низа на бинарни цифри, сите што треба да направите
се почне групацијата нив право да се остави како групи на 4.
А потоа можете да се консолидираат нив во хексадецимални броеви,
сериозно ограничување на бројот на бројки треба да обработите ментално.
Наместо на 32 0 и 1 е, како што ќе видиме во една секунда,
можеби ќе можете да го фаќате за само 8 хексадецимални цифри, многу
повеќе концизни.
>> На топ листите на неколку слајдови назад ќе да ви помогне да дознаам ова мапирање,
иако, повторно ќе го меморираат прилично брзо.
Ќе одиме преку еден пример во моментов.
Значи, ако ние имаме голем број, како таков, ова навистина големи бинарен број,
или она што се појавува да биде голем бинарен број.
А причината велам дека, тоа е само so-- тоа е монструм, нели?
Има толку многу 0 и 1 е таму.
Но, ние најверојатно не навистина имаат чувство за она што
големината на овој број е навистина.
Ние немаме поим што е тоа нема да кореспондираат на децимална.
И во фактот што дури и не ќе се види она што го кореспондира со децимален моментов.
Ние би можеле да бидат во можност да изразат ова на начин кој
ќе ни даде повеќе информации за само колку е голема оваа бројка е.
>> Па ајде да одиме во тој процес на конверзија.
Првото нешто што ние треба да направите е да сакаме да ја групата
овие бројки надвор во групи од 4, почнувајќи од дното
и работа на левата страна.
Таму се случи да биде 32 цифри тука, што значи имаме
убав чист пауза од 8 групи од по 4.
Се сеќавам дека секоја група на 4 тука, уникатно одговара
да хексадецимално цифра.
Па ние ќе почне повторно градење на нашата број од десната страна, и работа замина.
Па што е 1101?
Па ние не по математика во нашата глава, имаме 1 во осмици место, 1
на местото на четири, односно 0 во twos место, и 1 во оние место.
Тоа е 8 плус 4 плус 1, кој ние ќе знаеме како 13.
Но, ние најверојатно нема да пишувам 13 надвор, затоа ние работиме со хексадецимален.
Ние треба да го конвертирате во хексадецимални еквивалент на 13, кој е d.
>> 0011, и тоа е 0 во осмици место, 0 во четири место,
1 во twos место, и 1 во оние место.
Тоа е 3.
Мислам Правете го ова повторно, имаме тука 9.
А потоа 11, но тоа е Б, да се потсетиме.
2, 10-- или a-- 6, и 4.
И така што многу голема низа од 0 и 1 е на врвот
се повеќе изразени концизно во хексадецимален како 0x 46a2b93d.
>> Па, добро, што сте научиле нов кул вештина, што е поентата?
Ние не би можеле да го користат овој сите време, како што ние ќе треба наскоро да се види,
ние ги користиме хексадецимален доста многу како програмери.
Не е задолжително за целта на тоа математика со него,
туку затоа што многу пати мемориски адреси во нашиот систем
се претставени во хексадецимален.
Тоа е навистина концизен начин да се изрази инаку тежок, бинарни броеви.
И така, повторно, можеби not-- ти си веројатно
не се случува да се направи било математика Со тоа, вие не се
ќе биде множење хексадецимални броеви заедно,
или прави нешто чудно како тоа.
Но, тоа е корисна вештина да се има за да можете да ги изразат и да се разбереме
меморија адреси, и други начини на користење на податоци во В.
>> Јас сум Даг Лојд, ова е CS50.