1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 DOUG LLYOYD: Takže hexadecimálne čísla, ako by sme potrebovali ďalšie základné číslo 3 00:00:08,510 --> 00:00:09,970 Schéma v poriadku? 4 00:00:09,970 --> 00:00:13,000 No, väčšina západných kultúr, ako ste pravdepodobne oboznámení, 5 00:00:13,000 --> 00:00:16,560 použite desatinnú system-- základňu 10, k reprezentácii číselných dát. 6 00:00:16,560 --> 00:00:20,520 Máme číslica 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 A ak budeme potrebovať k reprezentácii hodnoty vyššie ako deväť, 8 00:00:23,890 --> 00:00:26,800 môžeme kombinovať tieto číslice použitie pojmu miesto hodnoty. 9 00:00:26,800 --> 00:00:30,115 Takže pre 10, máme 1 číslica nasleduje 0 číslicou 10 00:00:30,115 --> 00:00:32,240 a my sme intuitívne pochopiť, že to, čo robíme 11 00:00:32,240 --> 00:00:35,500 je tu sme násobenie prvá 1 o 10, 12 00:00:35,500 --> 00:00:37,689 a potom sa pridá 0 pre celkom 10. 13 00:00:37,689 --> 00:00:40,480 Počítače niečo urobiť pekný podobné, ako budete pravdepodobne poznať, 14 00:00:40,480 --> 00:00:42,409 s binárnym system-- základni 2. 15 00:00:42,409 --> 00:00:44,700 Rozdiel tam byť že existujú iba 2 číslice 16 00:00:44,700 --> 00:00:46,770 pracovať with-- 0 a 1. 17 00:00:46,770 --> 00:00:49,033 A tak naše miesto hodnoty, namiesto toho, aby raz, 18 00:00:49,033 --> 00:00:52,600 ten, set, tisíc, ako sa by byť v desiatkovej sústave, 19 00:00:52,600 --> 00:00:57,690 sú jeden, dva, štyri, osem, a tak ďalej. 20 00:00:57,690 --> 00:01:00,842 Tu je vec však, tieto 0 a 1, najmä 21 00:01:00,842 --> 00:01:03,800 či máme byť počítačoví odborníci a robíme veľa programovanie 22 00:01:03,800 --> 00:01:06,924 alebo pri práci s počítačmi, šli , Ktoré majú byť vidieť veľké množstvo binárnych čísel. 23 00:01:06,924 --> 00:01:11,660 A tí, 0 a 1 je vo veľkých reťazcoch môže byť veľmi ťažké spracovať. 24 00:01:11,660 --> 00:01:16,610 Nemôžeme sa len pozrieť na reťazce 0 a 1 je a nutne vedieť, 25 00:01:16,610 --> 00:01:17,810 presne to, čo to je. 26 00:01:17,810 --> 00:01:21,980 Ale je to ešte užitočné mať možnosť expresné údaje rovnakým spôsobom 27 00:01:21,980 --> 00:01:23,480 že počítač robí. 28 00:01:23,480 --> 00:01:26,580 Máme tento pojem z hexadecimálne systém, ktorý je 29 00:01:26,580 --> 00:01:29,840 základňa 16, namiesto toho, báza 10 alebo základné 2. 30 00:01:29,840 --> 00:01:34,420 Čo znamená, že budeme mať 16 číslic pracovať s miesto 10 alebo 2. 31 00:01:34,420 --> 00:01:37,180 A je to oveľa viac stručné spôsob, ako vyjadriť 32 00:01:37,180 --> 00:01:41,210 binárne informácie o počítačovom systéme, je to oveľa ľudskejší pochopiteľné. 33 00:01:41,210 --> 00:01:43,520 Takže máme číslica 0 až 9, a potom 34 00:01:43,520 --> 00:01:49,480 máme tiež tieto ďalšie šesť digits-- si, b, c, d, e, a f, ktoré predstavujú 10, 35 00:01:49,480 --> 00:01:56,050 náš pojem 10, 11, 12, 13, 14 a 15, v desiatkovej sústave. 36 00:01:56,050 --> 00:01:59,787 Niekedy, mimochodom, budete aj vy vidieť tieto a až f ako kapitálové A 37 00:01:59,787 --> 00:02:01,620 až F, čo je spôsob, ako mám tendenciu robiť. 38 00:02:01,620 --> 00:02:04,560 Je to len môj prednostné štýl, ale buď je v poriadku, 39 00:02:04,560 --> 00:02:07,870 obe predstavujú celkom to isté. 40 00:02:07,870 --> 00:02:09,090 >> Tak prečo je hexadecimálne v pohode? 41 00:02:09,090 --> 00:02:11,580 Prečo musíme použiť ďalšie dodatočné základňa? 42 00:02:11,580 --> 00:02:14,310 Máme už 2 a 10, prečo potrebujeme 16? 43 00:02:14,310 --> 00:02:21,650 No 16 je sila 2, a tak každý hexadecimálne číslice, 0 až f, 44 00:02:21,650 --> 00:02:25,440 zodpovedá jedinečný usporiadanie, alebo jedinečné usporiadanie 45 00:02:25,440 --> 00:02:29,060 4 binárnych čísel, 4 bity. 46 00:02:29,060 --> 00:02:34,570 A tak sa v tomto zmysle, môžeme vyjadriť veľmi dlhé, komplexné, binárne čísla 47 00:02:34,570 --> 00:02:36,440 v šestnástkovej sústave v A oveľa stručnejšia spôsob, 48 00:02:36,440 --> 00:02:41,080 bez straty informácií alebo majú na robiť najmä neskladné konverzie 49 00:02:41,080 --> 00:02:42,480 Na týchto čísel. 50 00:02:42,480 --> 00:02:44,880 >> Takže, ako som práve povedal, každý hexadecimálne číslice 51 00:02:44,880 --> 00:02:48,630 zodpovedá jedinečný usporiadanie 4 binárnych čísel. 52 00:02:48,630 --> 00:02:53,670 Takže na binárny reťazec 0000 zodpovedá hexadecimálne znak 0. 53 00:02:53,670 --> 00:03:00,340 0110 zodpovedá šestnástkovej číslica 6. 54 00:03:00,340 --> 00:03:05,225 A 1111 odpovedá šestnástkovej číslice f. 55 00:03:05,225 --> 00:03:07,100 Ak ste pri pohľade na tento graf, zvlášť 56 00:03:07,100 --> 00:03:09,099 ak ste pri pohľade na ľavá strana grafu, 57 00:03:09,099 --> 00:03:11,970 môžete už vidieť, že je to bit z problému nejednoznačnosti tu. 58 00:03:11,970 --> 00:03:15,229 Desatinné 0 je do značnej miery na nerozoznanie od hexadecimálne 0, 59 00:03:15,229 --> 00:03:18,020 iný ako skutočnosť, že je to v rámci stĺpec, ktorý hovorí, že hexadecimálne. 60 00:03:18,020 --> 00:03:22,130 >> Ale asi nebude vždy mať tento stĺpec tam. 61 00:03:22,130 --> 00:03:25,420 Všeobecne, keď sme vyjadrovanie Čísla v šestnástkovej sústave 62 00:03:25,420 --> 00:03:28,130 jasne rozlíšiť im v desiatkovej, 63 00:03:28,130 --> 00:03:31,860 zvyčajne je prefix s predponou 0x. 64 00:03:31,860 --> 00:03:35,990 0x neznamená nič v realite, je to len vodítko k nám ako ľudia 65 00:03:35,990 --> 00:03:39,190 že to, čo sa chystáme vidieť, alebo sa chystáte začať rozobrať, 66 00:03:39,190 --> 00:03:40,750 je šestnástkové číslo. 67 00:03:40,750 --> 00:03:45,590 Je zrejmé, pre vyššie číslice a, b, c, d, a f, čo zodpovedá 10-15 68 00:03:45,590 --> 00:03:48,840 je to celkom jednoznačné, že je to to je šestnástkové číslo. 69 00:03:48,840 --> 00:03:51,620 A v skutočnosti, ľubovoľný hexadecimálne číslo, ktoré má znaky v tom, 70 00:03:51,620 --> 00:03:54,642 je asi celkom zrejmé, ako šestnástkové číslo. 71 00:03:54,642 --> 00:03:56,350 Ale napriek tomu, pre Z dôvodov jasnosti, je to 72 00:03:56,350 --> 00:03:58,290 vždy dobrý nápad prefix zakaždým, keď 73 00:03:58,290 --> 00:04:01,835 odkazovať na číslicu ako hexadecimálne Číslo pridaním prefixu 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Takže, binárne, ako my povedal, má place hodnoty. 76 00:04:06,810 --> 00:04:10,040 Je tu tí miesto, dvojky miesto, štvorky miesto, a osmičky miesto. 77 00:04:10,040 --> 00:04:13,640 A desiatkovej má tiež umiestniť hodnôt, ones, desiatky, stovky a tisíce 78 00:04:13,640 --> 00:04:15,910 že my všetci si možno spomenú, od základnej školy. 79 00:04:15,910 --> 00:04:18,050 A hexadecimálne nie je Výnimkou tu, naozaj. 80 00:04:18,050 --> 00:04:22,660 Má tiež place hodnoty, ale namiesto z toho, že právomoci 2 alebo sily 10, 81 00:04:22,660 --> 00:04:25,050 sú to sily 16. 82 00:04:25,050 --> 00:04:29,410 >> Tak sme vidieť rad ako je táto, celkom jasne viem, že je 397, nie? 83 00:04:29,410 --> 00:04:33,420 No, ak vidíme čísla ako je tento, vieme, že to nie je 397 už nie. 84 00:04:33,420 --> 00:04:36,730 Toto je šestnástkový číslo tri deväť sedem. 85 00:04:36,730 --> 00:04:39,680 Nie je to 397, znamená to, niečo odlišné, 86 00:04:39,680 --> 00:04:44,180 preto, že sme s použitím sily 16, ako všetko nášho miesta hodnôt namiesto právomocí 87 00:04:44,180 --> 00:04:45,560 10. 88 00:04:45,560 --> 00:04:50,570 V skutočnosti, tu by sa namiesto hodnoty byť tými, miesto je sixteens miesto, 89 00:04:50,570 --> 00:04:55,080 a dvestopäťdesiat šestky miesto, čo zodpovedá našej myšlienke na tie 90 00:04:55,080 --> 00:04:59,180 miesto, miesto desiatok a stoviek miesto, v prípade, že ich bolo 397. 91 00:04:59,180 --> 00:05:03,620 Ale pretože je to 0x 397, máme Ones miesto, sixteens miesto, 92 00:05:03,620 --> 00:05:05,780 a dvestopäťdesiat šestky miesto. 93 00:05:05,780 --> 00:05:09,460 Alebo, 16 na 0 miesta, čo je 1. 94 00:05:09,460 --> 00:05:12,420 A 16 na prvé napájacie miesto, 16. 95 00:05:12,420 --> 00:05:17,080 A 16 na druhú miesto, 256, a tak ďalej, a tak ďalej, a tak ďalej. 96 00:05:17,080 --> 00:05:24,400 Takže toto číslo je v skutočnosti 3 krát 16 štvorcový plus 9 krát 16 plus 7. 97 00:05:24,400 --> 00:05:28,980 Nechcel som si to spočítajte tu, ale to nie je 397, je to oveľa, oveľa väčšie než to. 98 00:05:28,980 --> 00:05:34,050 >> Rovnako tak by sme mohli mať 0x ADC, dobre, že je doba 16 na druhú. 99 00:05:34,050 --> 00:05:38,220 Alebo ak prekladáme, že k našej predstave desatinných čísel, to je 10 krát 100 00:05:38,220 --> 00:05:44,160 16 štvorcový Plus d krát 16, alebo plus 13 krát 16. 101 00:05:44,160 --> 00:05:47,410 A nebojte sa, ak ste naspamäť že d je 13, alebo niečo také, 102 00:05:47,410 --> 00:05:49,201 tam nie je príliš veľa z týchto písmen číslic 103 00:05:49,201 --> 00:05:52,820 a to bude stáť intuitívne celkom rýchlo. 104 00:05:52,820 --> 00:05:59,800 Takže znovu To je 10 krát 16 na druhú, a 13 krát 16 plus 12 krát 1. 105 00:05:59,800 --> 00:06:03,640 Takže 0x ADC. 106 00:06:03,640 --> 00:06:07,750 >> Takže, ako som povedal, každý skupina 4 binárnych číslic 107 00:06:07,750 --> 00:06:10,000 zodpovedá jedinému hexadecimálne číslice, 108 00:06:10,000 --> 00:06:12,570 a tak to je vlastne naozaj ľahko meniť tam a späť 109 00:06:12,570 --> 00:06:14,690 medzi hexadecimálne a binárne. 110 00:06:14,690 --> 00:06:18,310 Ak máte tento dlhý reťazec binárne číslice, všetko, čo potrebujete urobiť, 111 00:06:18,310 --> 00:06:21,320 je začať zoskupovať je správna doľava ako skupiny 4. 112 00:06:21,320 --> 00:06:26,550 A potom môžete konsolidovať je do čísel šestnástkovej, 113 00:06:26,550 --> 00:06:30,910 hrozne obmedzenie počtu Číslice musíte spracovať psychicky. 114 00:06:30,910 --> 00:06:33,680 Namiesto toho, aby 32 0 a 1 je, ako uvidíme v druhej, 115 00:06:33,680 --> 00:06:37,630 by ste mali byť schopní sa dostať dole na iba 8 hexadecimálnych číslic, veľa 116 00:06:37,630 --> 00:06:39,200 stručnejší. 117 00:06:39,200 --> 00:06:43,500 >> Grafy niekoľko zasunie späť bude vám pomôže zistiť, toto mapovanie, 118 00:06:43,500 --> 00:06:45,660 aj keď, opäť budete zapamätať celkom rýchlo. 119 00:06:45,660 --> 00:06:47,320 Prejdeme príklad práve teraz. 120 00:06:47,320 --> 00:06:51,507 Takže ak máme rad ako je tento, to naozaj veľký binárne číslo, 121 00:06:51,507 --> 00:06:53,340 alebo to, čo sa zdá byť veľké binárne číslo. 122 00:06:53,340 --> 00:06:56,260 A dôvod, prečo hovorím, že je to Len tak--, že je to monštrum, že jo? 123 00:06:56,260 --> 00:06:58,959 Je tu toľko 0 a 1 je tam. 124 00:06:58,959 --> 00:07:01,000 Ale pravdepodobne nie naozaj zmysel toho, čo 125 00:07:01,000 --> 00:07:02,870 Veľkosť tohto čísla v skutočnosti je. 126 00:07:02,870 --> 00:07:06,150 Nemáme poňatia, čo to by zodpovedalo desatinnej čiarky. 127 00:07:06,150 --> 00:07:09,744 A v skutočnosti sme sa ani vidieť, čo to zodpovedá v desiatkovej sústave práve teraz. 128 00:07:09,744 --> 00:07:11,660 Mohli by sme byť schopní vyjadriť to tak, že 129 00:07:11,660 --> 00:07:15,640 by nám nejaké bližšie informácie len o tom, ako veľké je toto číslo. 130 00:07:15,640 --> 00:07:17,270 >> Tak poďme k tomuto procesu konverzie. 131 00:07:17,270 --> 00:07:19,311 Prvá vec, ktorú musíme musíte urobiť, je chceme zoskupiť 132 00:07:19,311 --> 00:07:23,050 Tieto číslice sa do skupín 4, od pravej 133 00:07:23,050 --> 00:07:24,120 a pracovné doľava. 134 00:07:24,120 --> 00:07:27,260 Tam stalo, že sa 32 číslic tu, čo znamená, že máme 135 00:07:27,260 --> 00:07:33,210 pekný čistý zlom 8 skupín po 4. 136 00:07:33,210 --> 00:07:36,200 Pamätajte si, že každú skupinu 4 tu unikátne zodpovedá 137 00:07:36,200 --> 00:07:37,760 do hexadecimálnom kóde. 138 00:07:37,760 --> 00:07:42,080 Takže začneme znovu budovať naše číslo sprava, a pracovné odišiel. 139 00:07:42,080 --> 00:07:44,890 No čo je 1.101? 140 00:07:44,890 --> 00:07:49,220 Tak sme si to spočítajte v našej hlave, máme 1 v ôsmy mieste, 1 141 00:07:49,220 --> 00:07:54,310 na mieste štyroch, s 0 v dvojky miesto a 1. miesto v ones mieste. 142 00:07:54,310 --> 00:07:58,820 To je 8 plus 4 plus 1, ktoré by sme vedieť, ako 13. 143 00:07:58,820 --> 00:08:02,400 Ale pravdepodobne nebude písať 13 out, pretože pracujeme s hexadecimálne. 144 00:08:02,400 --> 00:08:07,982 Musíme previesť na šestnástkové ekvivalent 13, ktorý je d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, dobre, že je to 0 v osmičky miesto, 0 na štyroch mieste, 146 00:08:12,940 --> 00:08:15,190 1 v mieste po dvoch, a 1 na jednotkovú mieste. 147 00:08:15,190 --> 00:08:16,880 To je 3. 148 00:08:16,880 --> 00:08:20,180 Mám na mysli to robiť to opäť tu máme 9. 149 00:08:20,180 --> 00:08:23,850 A potom 11, ale to je b, odvolanie. 150 00:08:23,850 --> 00:08:30,570 2, 10-- alebo je-- 6, a 4. 151 00:08:30,570 --> 00:08:34,669 A tak, že veľmi veľký reťazec z 0 a 1 rokoch na vrchol 152 00:08:34,669 --> 00:08:38,549 Je výstižnejšie vyjadrené v šestnástkovej sústave ako 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> No, OK, sme sa naučili nové pohode zručnosť, aký to má zmysel? 155 00:08:45,870 --> 00:08:49,560 Mohli by sme to použiť všetky čas, ako budeme čoskoro vidieť, 156 00:08:49,560 --> 00:08:52,370 používame šestnástkové docela veľa ako programátori. 157 00:08:52,370 --> 00:08:55,060 Nie nutne pre Účelom tým matematiku s tým, 158 00:08:55,060 --> 00:08:58,470 ale pretože mnohokrát pamäťové adresy v našom systéme 159 00:08:58,470 --> 00:09:00,440 sú zastúpené v šestnástkovej sústave. 160 00:09:00,440 --> 00:09:04,390 Je to naozaj stručný spôsob, ako vyjadriť inak ťažkopádne, binárne čísla. 161 00:09:04,390 --> 00:09:06,440 A tak opäť, môže sa ne-- ste pravdepodobne 162 00:09:06,440 --> 00:09:07,640 nebude robiť žiadne matematiku s tým, že nie ste 163 00:09:07,640 --> 00:09:09,848 Bude násobenie hexadecimálne čísla dohromady, 164 00:09:09,848 --> 00:09:11,770 alebo robiť niečo divne takhle. 165 00:09:11,770 --> 00:09:16,120 Ale je užitočná zručnosť mať takže si môžete vyjadrovať a chápať 166 00:09:16,120 --> 00:09:23,290 pamäť adresy, a ďalšie spôsoby s použitím dát v C. 167 00:09:23,290 --> 00:09:26,240 >> Som Doug Lloyd, je to CS50. 168 00:09:26,240 --> 00:09:28,028