DOUG LLYOYD: Takže hexadecimálne čísla, ako by sme potrebovali ďalšie základné číslo
Schéma v poriadku?
No, väčšina západných kultúr, ako ste pravdepodobne oboznámení,
použite desatinnú system-- základňu 10, k reprezentácii číselných dát.
Máme číslica 0, 1, 2, 3, 5, 6, 7,8,9.
A ak budeme potrebovať k reprezentácii hodnoty vyššie ako deväť,
môžeme kombinovať tieto číslice použitie pojmu miesto hodnoty.
Takže pre 10, máme 1 číslica nasleduje 0 číslicou
a my sme intuitívne pochopiť, že to, čo robíme
je tu sme násobenie prvá 1 o 10,
a potom sa pridá 0 pre celkom 10.
Počítače niečo urobiť pekný podobné, ako budete pravdepodobne poznať,
s binárnym system-- základni 2.
Rozdiel tam byť že existujú iba 2 číslice
pracovať with-- 0 a 1.
A tak naše miesto hodnoty, namiesto toho, aby raz,
ten, set, tisíc, ako sa by byť v desiatkovej sústave,
sú jeden, dva, štyri, osem, a tak ďalej.
Tu je vec však, tieto 0 a 1, najmä
či máme byť počítačoví odborníci a robíme veľa programovanie
alebo pri práci s počítačmi, šli , Ktoré majú byť vidieť veľké množstvo binárnych čísel.
A tí, 0 a 1 je vo veľkých reťazcoch môže byť veľmi ťažké spracovať.
Nemôžeme sa len pozrieť na reťazce 0 a 1 je a nutne vedieť,
presne to, čo to je.
Ale je to ešte užitočné mať možnosť expresné údaje rovnakým spôsobom
že počítač robí.
Máme tento pojem z hexadecimálne systém, ktorý je
základňa 16, namiesto toho, báza 10 alebo základné 2.
Čo znamená, že budeme mať 16 číslic pracovať s miesto 10 alebo 2.
A je to oveľa viac stručné spôsob, ako vyjadriť
binárne informácie o počítačovom systéme, je to oveľa ľudskejší pochopiteľné.
Takže máme číslica 0 až 9, a potom
máme tiež tieto ďalšie šesť digits-- si, b, c, d, e, a f, ktoré predstavujú 10,
náš pojem 10, 11, 12, 13, 14 a 15, v desiatkovej sústave.
Niekedy, mimochodom, budete aj vy vidieť tieto a až f ako kapitálové A
až F, čo je spôsob, ako mám tendenciu robiť.
Je to len môj prednostné štýl, ale buď je v poriadku,
obe predstavujú celkom to isté.
>> Tak prečo je hexadecimálne v pohode?
Prečo musíme použiť ďalšie dodatočné základňa?
Máme už 2 a 10, prečo potrebujeme 16?
No 16 je sila 2, a tak každý hexadecimálne číslice, 0 až f,
zodpovedá jedinečný usporiadanie, alebo jedinečné usporiadanie
4 binárnych čísel, 4 bity.
A tak sa v tomto zmysle, môžeme vyjadriť veľmi dlhé, komplexné, binárne čísla
v šestnástkovej sústave v A oveľa stručnejšia spôsob,
bez straty informácií alebo majú na robiť najmä neskladné konverzie
Na týchto čísel.
>> Takže, ako som práve povedal, každý hexadecimálne číslice
zodpovedá jedinečný usporiadanie 4 binárnych čísel.
Takže na binárny reťazec 0000 zodpovedá hexadecimálne znak 0.
0110 zodpovedá šestnástkovej číslica 6.
A 1111 odpovedá šestnástkovej číslice f.
Ak ste pri pohľade na tento graf, zvlášť
ak ste pri pohľade na ľavá strana grafu,
môžete už vidieť, že je to bit z problému nejednoznačnosti tu.
Desatinné 0 je do značnej miery na nerozoznanie od hexadecimálne 0,
iný ako skutočnosť, že je to v rámci stĺpec, ktorý hovorí, že hexadecimálne.
>> Ale asi nebude vždy mať tento stĺpec tam.
Všeobecne, keď sme vyjadrovanie Čísla v šestnástkovej sústave
jasne rozlíšiť im v desiatkovej,
zvyčajne je prefix s predponou 0x.
0x neznamená nič v realite, je to len vodítko k nám ako ľudia
že to, čo sa chystáme vidieť, alebo sa chystáte začať rozobrať,
je šestnástkové číslo.
Je zrejmé, pre vyššie číslice a, b, c, d, a f, čo zodpovedá 10-15
je to celkom jednoznačné, že je to to je šestnástkové číslo.
A v skutočnosti, ľubovoľný hexadecimálne číslo, ktoré má znaky v tom,
je asi celkom zrejmé, ako šestnástkové číslo.
Ale napriek tomu, pre Z dôvodov jasnosti, je to
vždy dobrý nápad prefix zakaždým, keď
odkazovať na číslicu ako hexadecimálne Číslo pridaním prefixu 0x.
>> Takže, binárne, ako my povedal, má place hodnoty.
Je tu tí miesto, dvojky miesto, štvorky miesto, a osmičky miesto.
A desiatkovej má tiež umiestniť hodnôt, ones, desiatky, stovky a tisíce
že my všetci si možno spomenú, od základnej školy.
A hexadecimálne nie je Výnimkou tu, naozaj.
Má tiež place hodnoty, ale namiesto z toho, že právomoci 2 alebo sily 10,
sú to sily 16.
>> Tak sme vidieť rad ako je táto, celkom jasne viem, že je 397, nie?
No, ak vidíme čísla ako je tento, vieme, že to nie je 397 už nie.
Toto je šestnástkový číslo tri deväť sedem.
Nie je to 397, znamená to, niečo odlišné,
preto, že sme s použitím sily 16, ako všetko nášho miesta hodnôt namiesto právomocí
10.
V skutočnosti, tu by sa namiesto hodnoty byť tými, miesto je sixteens miesto,
a dvestopäťdesiat šestky miesto, čo zodpovedá našej myšlienke na tie
miesto, miesto desiatok a stoviek miesto, v prípade, že ich bolo 397.
Ale pretože je to 0x 397, máme Ones miesto, sixteens miesto,
a dvestopäťdesiat šestky miesto.
Alebo, 16 na 0 miesta, čo je 1.
A 16 na prvé napájacie miesto, 16.
A 16 na druhú miesto, 256, a tak ďalej, a tak ďalej, a tak ďalej.
Takže toto číslo je v skutočnosti 3 krát 16 štvorcový plus 9 krát 16 plus 7.
Nechcel som si to spočítajte tu, ale to nie je 397, je to oveľa, oveľa väčšie než to.
>> Rovnako tak by sme mohli mať 0x ADC, dobre, že je doba 16 na druhú.
Alebo ak prekladáme, že k našej predstave desatinných čísel, to je 10 krát
16 štvorcový Plus d krát 16, alebo plus 13 krát 16.
A nebojte sa, ak ste naspamäť že d je 13, alebo niečo také,
tam nie je príliš veľa z týchto písmen číslic
a to bude stáť intuitívne celkom rýchlo.
Takže znovu To je 10 krát 16 na druhú, a 13 krát 16 plus 12 krát 1.
Takže 0x ADC.
>> Takže, ako som povedal, každý skupina 4 binárnych číslic
zodpovedá jedinému hexadecimálne číslice,
a tak to je vlastne naozaj ľahko meniť tam a späť
medzi hexadecimálne a binárne.
Ak máte tento dlhý reťazec binárne číslice, všetko, čo potrebujete urobiť,
je začať zoskupovať je správna doľava ako skupiny 4.
A potom môžete konsolidovať je do čísel šestnástkovej,
hrozne obmedzenie počtu Číslice musíte spracovať psychicky.
Namiesto toho, aby 32 0 a 1 je, ako uvidíme v druhej,
by ste mali byť schopní sa dostať dole na iba 8 hexadecimálnych číslic, veľa
stručnejší.
>> Grafy niekoľko zasunie späť bude vám pomôže zistiť, toto mapovanie,
aj keď, opäť budete zapamätať celkom rýchlo.
Prejdeme príklad práve teraz.
Takže ak máme rad ako je tento, to naozaj veľký binárne číslo,
alebo to, čo sa zdá byť veľké binárne číslo.
A dôvod, prečo hovorím, že je to Len tak--, že je to monštrum, že jo?
Je tu toľko 0 a 1 je tam.
Ale pravdepodobne nie naozaj zmysel toho, čo
Veľkosť tohto čísla v skutočnosti je.
Nemáme poňatia, čo to by zodpovedalo desatinnej čiarky.
A v skutočnosti sme sa ani vidieť, čo to zodpovedá v desiatkovej sústave práve teraz.
Mohli by sme byť schopní vyjadriť to tak, že
by nám nejaké bližšie informácie len o tom, ako veľké je toto číslo.
>> Tak poďme k tomuto procesu konverzie.
Prvá vec, ktorú musíme musíte urobiť, je chceme zoskupiť
Tieto číslice sa do skupín 4, od pravej
a pracovné doľava.
Tam stalo, že sa 32 číslic tu, čo znamená, že máme
pekný čistý zlom 8 skupín po 4.
Pamätajte si, že každú skupinu 4 tu unikátne zodpovedá
do hexadecimálnom kóde.
Takže začneme znovu budovať naše číslo sprava, a pracovné odišiel.
No čo je 1.101?
Tak sme si to spočítajte v našej hlave, máme 1 v ôsmy mieste, 1
na mieste štyroch, s 0 v dvojky miesto a 1. miesto v ones mieste.
To je 8 plus 4 plus 1, ktoré by sme vedieť, ako 13.
Ale pravdepodobne nebude písať 13 out, pretože pracujeme s hexadecimálne.
Musíme previesť na šestnástkové ekvivalent 13, ktorý je d.
>> 0011, dobre, že je to 0 v osmičky miesto, 0 na štyroch mieste,
1 v mieste po dvoch, a 1 na jednotkovú mieste.
To je 3.
Mám na mysli to robiť to opäť tu máme 9.
A potom 11, ale to je b, odvolanie.
2, 10-- alebo je-- 6, a 4.
A tak, že veľmi veľký reťazec z 0 a 1 rokoch na vrchol
Je výstižnejšie vyjadrené v šestnástkovej sústave ako 0x 46a2b93d.
>> No, OK, sme sa naučili nové pohode zručnosť, aký to má zmysel?
Mohli by sme to použiť všetky čas, ako budeme čoskoro vidieť,
používame šestnástkové docela veľa ako programátori.
Nie nutne pre Účelom tým matematiku s tým,
ale pretože mnohokrát pamäťové adresy v našom systéme
sú zastúpené v šestnástkovej sústave.
Je to naozaj stručný spôsob, ako vyjadriť inak ťažkopádne, binárne čísla.
A tak opäť, môže sa ne-- ste pravdepodobne
nebude robiť žiadne matematiku s tým, že nie ste
Bude násobenie hexadecimálne čísla dohromady,
alebo robiť niečo divne takhle.
Ale je užitočná zručnosť mať takže si môžete vyjadrovať a chápať
pamäť adresy, a ďalšie spôsoby s použitím dát v C.
>> Som Doug Lloyd, je to CS50.