1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 DOUG LLYOYD: Takže hexadecimální čísla, jako bychom potřebovali další základní číslo 3 00:00:08,510 --> 00:00:09,970 Schéma v pořádku? 4 00:00:09,970 --> 00:00:13,000 No, většina západních kultur, jak jste pravděpodobně obeznámeni, 5 00:00:13,000 --> 00:00:16,560 použijte desetinnou system-- základnu 10, k reprezentaci číselných dat. 6 00:00:16,560 --> 00:00:20,520 Máme číslice 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 A pokud budeme potřebovat k reprezentaci hodnoty vyšší než devět, 8 00:00:23,890 --> 00:00:26,800 můžeme kombinovat tyto číslice použití pojmu místo hodnoty. 9 00:00:26,800 --> 00:00:30,115 Takže pro 10, máme 1 číslice následuje 0 číslicí 10 00:00:30,115 --> 00:00:32,240 a my jsme intuitivně pochopit, že to, co děláme 11 00:00:32,240 --> 00:00:35,500 je zde jsme násobení první 1 o 10, 12 00:00:35,500 --> 00:00:37,689 a pak se přidá 0 pro celkem 10. 13 00:00:37,689 --> 00:00:40,480 Počítače něco udělat pěkný podobné, jak budete pravděpodobně znát, 14 00:00:40,480 --> 00:00:42,409 s binárním system-- základně 2. 15 00:00:42,409 --> 00:00:44,700 Rozdíl tam být že existují pouze 2 číslice 16 00:00:44,700 --> 00:00:46,770 pracovat with-- 0 a 1. 17 00:00:46,770 --> 00:00:49,033 A tak naše místo hodnoty, místo toho, aby jednou, 18 00:00:49,033 --> 00:00:52,600 ten, set, tisíc, jak se by být v desítkové soustavě, 19 00:00:52,600 --> 00:00:57,690 jsou jeden, dva, čtyři, osm, a tak dále. 20 00:00:57,690 --> 00:01:00,842 Zde je věc však, tyto 0 a 1, zejména 21 00:01:00,842 --> 00:01:03,800 jestli máme být počítačoví odborníci a děláme spoustu programování 22 00:01:03,800 --> 00:01:06,924 nebo při práci s počítači, šli , které mají být vidět velké množství binárních čísel. 23 00:01:06,924 --> 00:01:11,660 A ti, 0 a 1 je ve velkých řetězcích může být velmi obtížné zpracovat. 24 00:01:11,660 --> 00:01:16,610 Nemůžeme se jen podívat na řetězce 0 a 1 je a nutně vědět, 25 00:01:16,610 --> 00:01:17,810 přesně to, co to je. 26 00:01:17,810 --> 00:01:21,980 Ale je to ještě užitečné mít možnost expresní údaje stejným způsobem 27 00:01:21,980 --> 00:01:23,480 že počítač dělá. 28 00:01:23,480 --> 00:01:26,580 Máme tento pojem z hexadecimální systém, který je 29 00:01:26,580 --> 00:01:29,840 základna 16, místo toho, báze 10 nebo základní 2. 30 00:01:29,840 --> 00:01:34,420 Což znamená, že budeme mít 16 číslic pracovat s místo 10 nebo 2. 31 00:01:34,420 --> 00:01:37,180 A je to mnohem víc stručné způsob, jak vyjádřit 32 00:01:37,180 --> 00:01:41,210 binární informace o počítačovém systému, je to mnohem lidštější pochopitelné. 33 00:01:41,210 --> 00:01:43,520 Takže máme číslice 0 až 9, a poté 34 00:01:43,520 --> 00:01:49,480 máme také tyto další šest digits-- si, b, c, d, e, a f, která představují 10, 35 00:01:49,480 --> 00:01:56,050 náš pojem 10, 11, 12, 13, 14 a 15, v desítkové soustavě. 36 00:01:56,050 --> 00:01:59,787 Někdy, mimochodem, budete i vy vidět tyto a až f jako kapitálové A 37 00:01:59,787 --> 00:02:01,620 až F, což je způsob, jak mám tendenci dělat. 38 00:02:01,620 --> 00:02:04,560 Je to jen můj přednostní styl, ale buď je v pořádku, 39 00:02:04,560 --> 00:02:07,870 obě představují docela to samé. 40 00:02:07,870 --> 00:02:09,090 >> Tak proč je hexadecimální v pohodě? 41 00:02:09,090 --> 00:02:11,580 Proč musíme použít další dodatečné základna? 42 00:02:11,580 --> 00:02:14,310 Máme už 2 a 10, proč potřebujeme 16? 43 00:02:14,310 --> 00:02:21,650 No 16 je síla 2, a tak každý hexadecimální číslice, 0 až f, 44 00:02:21,650 --> 00:02:25,440 odpovídá jedinečný uspořádání, nebo jedinečné uspořádání 45 00:02:25,440 --> 00:02:29,060 4 binárních čísel, 4 bity. 46 00:02:29,060 --> 00:02:34,570 A tak se v tomto smyslu, můžeme vyjádřit velmi dlouhé, komplexní, binární čísla 47 00:02:34,570 --> 00:02:36,440 v šestnáctkové soustavě v A mnohem stručnější způsob, 48 00:02:36,440 --> 00:02:41,080 bez ztráty informací nebo mají na dělat zejména neskladné konverze 49 00:02:41,080 --> 00:02:42,480 Na těchto čísel. 50 00:02:42,480 --> 00:02:44,880 >> Takže, jak jsem právě řekl, každý hexadecimální číslice 51 00:02:44,880 --> 00:02:48,630 odpovídá jedinečný uspořádání 4 binárních čísel. 52 00:02:48,630 --> 00:02:53,670 Takže na binární řetězec 0000 odpovídá hexadecimální znak 0. 53 00:02:53,670 --> 00:03:00,340 0110 odpovídá šestnáctkové číslice 6. 54 00:03:00,340 --> 00:03:05,225 A 1111 odpovídá šestnáctkové číslice f. 55 00:03:05,225 --> 00:03:07,100 Pokud jste při pohledu na tento graf, zvláště 56 00:03:07,100 --> 00:03:09,099 pokud jste při pohledu na levá strana grafu, 57 00:03:09,099 --> 00:03:11,970 můžete již vidět, že je to bit z problému nejednoznačnosti zde. 58 00:03:11,970 --> 00:03:15,229 Desetinné 0 je do značné míry k nerozeznání od hexadecimální 0, 59 00:03:15,229 --> 00:03:18,020 jiný než skutečnost, že je to v rámci sloupec, který říká, že hexadecimální. 60 00:03:18,020 --> 00:03:22,130 >> Ale asi nebude vždy mít tento sloupec tam. 61 00:03:22,130 --> 00:03:25,420 Obecně, když jsme vyjadřování Čísla v šestnáctkové soustavě 62 00:03:25,420 --> 00:03:28,130 jasně rozlišit jim v desítkové, 63 00:03:28,130 --> 00:03:31,860 obvykle je prefix s předponou 0x. 64 00:03:31,860 --> 00:03:35,990 0x neznamená nic v realitě, je to jen vodítko k nám jako lidé 65 00:03:35,990 --> 00:03:39,190 že to, co se chystáme vidět, nebo se chystáte začít rozebrat, 66 00:03:39,190 --> 00:03:40,750 je šestnáctkové číslo. 67 00:03:40,750 --> 00:03:45,590 Je zřejmé, pro vyšší číslice a, b, c, d, a f, což odpovídá 10-15 68 00:03:45,590 --> 00:03:48,840 je to docela jednoznačné, že je to to je šestnáctkové číslo. 69 00:03:48,840 --> 00:03:51,620 A ve skutečnosti, libovolný hexadecimální číslo, které má znaky v tom, 70 00:03:51,620 --> 00:03:54,642 je asi docela zřejmé, jako šestnáctkové číslo. 71 00:03:54,642 --> 00:03:56,350 Ale přesto, pro Z důvodu srozumitelnosti, je to 72 00:03:56,350 --> 00:03:58,290 vždy dobrý nápad prefix pokaždé, když 73 00:03:58,290 --> 00:04:01,835 odkazovat na číslici jako hexadecimální Číslo přidáním prefixu 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Takže, binární, jako my řekl, má place hodnoty. 76 00:04:06,810 --> 00:04:10,040 Je tu ti místo, dvojky místo, čtyřky místo, a osmičky místo. 77 00:04:10,040 --> 00:04:13,640 A desítkové má také umístit hodnot, ones, desítky, stovky a tisíce 78 00:04:13,640 --> 00:04:15,910 že my všichni si možná vzpomenou, od základní školy. 79 00:04:15,910 --> 00:04:18,050 A hexadecimální není Výjimkou zde, opravdu. 80 00:04:18,050 --> 00:04:22,660 Má také place hodnoty, ale namísto z toho, že pravomoci 2 nebo síly 10, 81 00:04:22,660 --> 00:04:25,050 jsou to síly 16. 82 00:04:25,050 --> 00:04:29,410 >> Tak jsme vidět řadu jako je tato, docela jasně vím, že je 397, ne? 83 00:04:29,410 --> 00:04:33,420 No, pokud vidíme čísla jako je tento, víme, že to není 397 už ne. 84 00:04:33,420 --> 00:04:36,730 Toto je hexadecimální číslo tři devět sedm. 85 00:04:36,730 --> 00:04:39,680 Není to 397, znamená to, Něco odlišného, 86 00:04:39,680 --> 00:04:44,180 proto, že jsme s použitím síly 16, jak vše našeho místa hodnot namísto pravomocí 87 00:04:44,180 --> 00:04:45,560 10. 88 00:04:45,560 --> 00:04:50,570 Ve skutečnosti, zde by se místo hodnoty být těmi, místo je sixteens místo, 89 00:04:50,570 --> 00:04:55,080 a dvě stě padesát šestky místo, což odpovídá naší myšlence na ty 90 00:04:55,080 --> 00:04:59,180 místo, místo desítek a stovek místo, v případě, že jich bylo 397. 91 00:04:59,180 --> 00:05:03,620 Ale protože je to 0x 397, máme Ones místo, sixteens místo, 92 00:05:03,620 --> 00:05:05,780 a dvě stě padesát šestky místo. 93 00:05:05,780 --> 00:05:09,460 Nebo, 16 na 0 místa, což je 1. 94 00:05:09,460 --> 00:05:12,420 A 16 na první napájecí místo, 16. 95 00:05:12,420 --> 00:05:17,080 A 16 na druhou místo, 256, a tak dále, a tak dále, a tak dále. 96 00:05:17,080 --> 00:05:24,400 Takže toto číslo je ve skutečnosti 3 krát 16 čtvercový plus 9 krát 16 plus 7. 97 00:05:24,400 --> 00:05:28,980 Nechtěl jsem si to spočítejte tady, ale to není 397, je to mnohem, mnohem větší než to. 98 00:05:28,980 --> 00:05:34,050 >> Stejně tak bychom mohli mít 0x ADC, dobře, že je doba 16 na druhou. 99 00:05:34,050 --> 00:05:38,220 Nebo pokud překládáme, že k naší představě desetinných čísel, to je 10 krát 100 00:05:38,220 --> 00:05:44,160 16 čtvercový Plus d krát 16, nebo plus 13 krát 16. 101 00:05:44,160 --> 00:05:47,410 A nebojte se, pokud jste nazpaměť že d je 13, nebo něco takového, 102 00:05:47,410 --> 00:05:49,201 tam není příliš mnoho z těchto písmen číslic 103 00:05:49,201 --> 00:05:52,820 a to bude stát intuitivní docela rychle. 104 00:05:52,820 --> 00:05:59,800 Takže znovu To je 10 krát 16 na druhou, 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, jak jsem řekl, každý skupina 4 binárních číslic 107 00:06:07,750 --> 00:06:10,000 odpovídá jedinému hexadecimální číslice, 108 00:06:10,000 --> 00:06:12,570 a tak to je vlastně opravdu snadno měnit tam a zpět 109 00:06:12,570 --> 00:06:14,690 mezi hexadecimální a binární. 110 00:06:14,690 --> 00:06:18,310 Pokud máte tento dlouhý řetězec binární číslice, vše, co potřebujete udělat, 111 00:06:18,310 --> 00:06:21,320 je začít seskupovat je správná doleva jako skupiny 4. 112 00:06:21,320 --> 00:06:26,550 A pak můžete konsolidovat je do čísel šestnáctkové, 113 00:06:26,550 --> 00:06:30,910 hrozně omezení počtu Číslice musíte zpracovat psychicky. 114 00:06:30,910 --> 00:06:33,680 Místo toho, aby 32 0 a 1 je, jak uvidíme v druhé, 115 00:06:33,680 --> 00:06:37,630 byste měli být schopni se dostat dolů na pouhých 8 hexadecimálních číslic, hodně 116 00:06:37,630 --> 00:06:39,200 stručnější. 117 00:06:39,200 --> 00:06:43,500 >> Grafy několik zasune zpět bude vám pomůže zjistit, toto mapování, 118 00:06:43,500 --> 00:06:45,660 i když, opět budete zapamatovat docela rychle. 119 00:06:45,660 --> 00:06:47,320 Projdeme příklad právě teď. 120 00:06:47,320 --> 00:06:51,507 Takže pokud máme řadu jako je tento, to opravdu velký binární číslo, 121 00:06:51,507 --> 00:06:53,340 nebo to, co se zdá být velké binární číslo. 122 00:06:53,340 --> 00:06:56,260 A důvod, proč říkám, že je to Jen tak--, že je to monstrum, že jo? 123 00:06:56,260 --> 00:06:58,959 Je tu tolik 0 a 1 je tam. 124 00:06:58,959 --> 00:07:01,000 Ale pravděpodobně ne opravdu smysl toho, co 125 00:07:01,000 --> 00:07:02,870 Velikost tohoto čísla ve skutečnosti je. 126 00:07:02,870 --> 00:07:06,150 Nemáme ponětí, co to by odpovídalo desetinné čárky. 127 00:07:06,150 --> 00:07:09,744 A ve skutečnosti jsme se ani vidět, co to odpovídá v desítkové soustavě právě teď. 128 00:07:09,744 --> 00:07:11,660 Mohli bychom být schopni vyjádřit to tak, že 129 00:07:11,660 --> 00:07:15,640 by nám nějaké bližší informace jen o tom, jak velké je toto číslo. 130 00:07:15,640 --> 00:07:17,270 >> Tak pojďme k tomuto procesu konverze. 131 00:07:17,270 --> 00:07:19,311 První věc, kterou musíme musíte udělat, je chceme seskupit 132 00:07:19,311 --> 00:07:23,050 Tyto číslice se do skupin 4, od pravé 133 00:07:23,050 --> 00:07:24,120 a pracovní doleva. 134 00:07:24,120 --> 00:07:27,260 Tam stalo, že se 32 číslic tady, což znamená, že máme 135 00:07:27,260 --> 00:07:33,210 pěkný čistý zlom 8 skupin po 4. 136 00:07:33,210 --> 00:07:36,200 Pamatujte si, že každou skupinu 4 zde unikátně odpovídá 137 00:07:36,200 --> 00:07:37,760 do hexadecimálním kódu. 138 00:07:37,760 --> 00:07:42,080 Takže začneme znovu budovat naše číslo zprava, a pracovní odešel. 139 00:07:42,080 --> 00:07:44,890 No co je 1.101? 140 00:07:44,890 --> 00:07:49,220 Tak jsme si to spočítejte v naší hlavě, máme 1 v osmý místě, 1 141 00:07:49,220 --> 00:07:54,310 na místě čtyřech, s 0 v dvojky místo a 1. místo v ones místě. 142 00:07:54,310 --> 00:07:58,820 To je 8 plus 4 plus 1, které bychom vědět, jak 13. 143 00:07:58,820 --> 00:08:02,400 Ale pravděpodobně nebude psát 13 out, protože pracujeme s hexadecimální. 144 00:08:02,400 --> 00:08:07,982 Musíme převést na šestnáctkové ekvivalent 13, který je d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, dobře, že je to 0 v osmičky místo, 0 na čtyřech místě, 146 00:08:12,940 --> 00:08:15,190 1 v místě po dvou, a 1 na jednotkovou místě. 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 dělat to opět tu máme 9. 149 00:08:20,180 --> 00:08:23,850 A pak 11, ale to je b, odvolání. 150 00:08:23,850 --> 00:08:30,570 2, 10-- nebo je-- 6, a 4. 151 00:08:30,570 --> 00:08:34,669 A tak, že velmi velký řetězec z 0 a 1 letech na vrchol 152 00:08:34,669 --> 00:08:38,549 Je výstižněji vyjádřeno v šestnáctkové soustavě jako 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> No, OK, jsme se naučili nové pohodě dovednost, jaký to má smysl? 155 00:08:45,870 --> 00:08:49,560 Mohli bychom to použít všechny čas, jak budeme brzy vidět, 156 00:08:49,560 --> 00:08:52,370 používáme šestnáctkové docela hodně jako programátoři. 157 00:08:52,370 --> 00:08:55,060 Ne nutně pro Účelem tím matematiku s tím, 158 00:08:55,060 --> 00:08:58,470 ale protože mnohokrát paměťové adresy v našem systému 159 00:08:58,470 --> 00:09:00,440 jsou zastoupeny v šestnáctkové soustavě. 160 00:09:00,440 --> 00:09:04,390 Je to opravdu stručný způsob, jak vyjádřit jinak těžkopádné, binární čísla. 161 00:09:04,390 --> 00:09:06,440 A tak opět, může se ne-- jste pravděpodobně 162 00:09:06,440 --> 00:09:07,640 nebude dělat žádné matematiku s tím, že nejste 163 00:09:07,640 --> 00:09:09,848 Bude násobení hexadecimální čísla dohromady, 164 00:09:09,848 --> 00:09:11,770 nebo dělat něco divně takhle. 165 00:09:11,770 --> 00:09:16,120 Ale je užitečná dovednost mít takže si můžete vyjadřovat a chápat 166 00:09:16,120 --> 00:09:23,290 paměť adresy, a další způsoby s použitím dat v C. 167 00:09:23,290 --> 00:09:26,240 >> Jsem Doug Lloyd, je to CS50. 168 00:09:26,240 --> 00:09:28,028