1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 Doug LLYOYD: Torej šestnajstiška številke, kot če smo potrebovali še eno osnovno številko 3 00:00:08,510 --> 00:00:09,970 Shema kajne? 4 00:00:09,970 --> 00:00:13,000 No, večina zahodnih kultur, kot ste verjetno seznanjeni, 5 00:00:13,000 --> 00:00:16,560 uporabite decimalno system-- osnove 10, da predstavljajo številske podatke. 6 00:00:16,560 --> 00:00:20,520 Imamo števke 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 In če bomo potrebovali za zastopanje vrednosti višji od devetih 8 00:00:23,890 --> 00:00:26,800 bomo lahko združujejo tiste cifre uporabo pojma mesto vrednosti. 9 00:00:26,800 --> 00:00:30,115 Torej, za 10, imamo 1 mestna sledi 0 cifro 10 00:00:30,115 --> 00:00:32,240 in smo intuitivno razumeti da to, kar delamo 11 00:00:32,240 --> 00:00:35,500 se bomo množenjem prva 1 z 10, 12 00:00:35,500 --> 00:00:37,689 in nato dodal, 0 za skupno 10. 13 00:00:37,689 --> 00:00:40,480 Računalniki narediti nekaj lepega Podobno, kot ste verjetno seznanjeni, 14 00:00:40,480 --> 00:00:42,409 z binarno system-- osnove 2. 15 00:00:42,409 --> 00:00:44,700 Razlika da bi bilo da obstajajo samo 2 števki 16 00:00:44,700 --> 00:00:46,770 delati with-- 0 in 1. 17 00:00:46,770 --> 00:00:49,033 In tako nas vrednote, namesto da bi bili eno, 18 00:00:49,033 --> 00:00:52,600 deset, sto tisoč, saj bi bila v decimalni sistem, 19 00:00:52,600 --> 00:00:57,690 ena, dve, štiri, osem, in tako naprej. 20 00:00:57,690 --> 00:01:00,842 Tukaj je stvar, čeprav, ti 0-ih in 1, zlasti 21 00:01:00,842 --> 00:01:03,800 če smo pa računalniške znanstvenike in delamo veliko programiranja 22 00:01:03,800 --> 00:01:06,924 ali delajo z računalniki, grejo se vidi veliko binarnih števil. 23 00:01:06,924 --> 00:01:11,660 In tiste 0 in 1 je v velikih verigah lahko zelo težko razčleniti. 24 00:01:11,660 --> 00:01:16,610 Ne moremo samo pogled na niz 0 in 1 in nujno vedeti 25 00:01:16,610 --> 00:01:17,810 točno to, kar je. 26 00:01:17,810 --> 00:01:21,980 Ampak to je še vedno koristno, da bi lahko ekspresne podatkov na enak način 27 00:01:21,980 --> 00:01:23,480 da računalniški ne. 28 00:01:23,480 --> 00:01:26,580 Imamo ta pojem od šestnajstiški sistem, ki je 29 00:01:26,580 --> 00:01:29,840 osnova 16, namesto navadnih 10 ali bazne 2. 30 00:01:29,840 --> 00:01:34,420 Kar pomeni, da imamo 16 cifer delati namesto 10 ali 2. 31 00:01:34,420 --> 00:01:37,180 In to je veliko bolj jedrnat način za izražanje 32 00:01:37,180 --> 00:01:41,210 binarnih informacij v računalniškem sistemu, to je veliko bolj človeško razumljivo. 33 00:01:41,210 --> 00:01:43,520 Torej imamo števke 0 do 9 in nato 34 00:01:43,520 --> 00:01:49,480 imamo tudi teh dodatnih šest digits-- a, b, c, d, e, in f, ki predstavljajo 10, 35 00:01:49,480 --> 00:01:56,050 naš pojem 10, 11, 12, 13, 14 in 15, v decimalni. 36 00:01:56,050 --> 00:01:59,787 Včasih, mimogrede, boste tudi vi vidim te a do f kot kapitalski A 37 00:01:59,787 --> 00:02:01,620 s F, ki je Tako sem se nagibajo, da to storite. 38 00:02:01,620 --> 00:02:04,560 To je samo moja prednost slog, vendar bodisi je v redu, 39 00:02:04,560 --> 00:02:07,870 sta oba predstavljata precej veliko isto stvar. 40 00:02:07,870 --> 00:02:09,090 >> Torej, zakaj je šestnajstiški kul? 41 00:02:09,090 --> 00:02:11,580 Zakaj moramo uporabiti to druge dodatne osnove? 42 00:02:11,580 --> 00:02:14,310 Imamo že 2 in 10, zakaj potrebujemo 16? 43 00:02:14,310 --> 00:02:21,650 No 16 je moč 2, in tako vsak šestnajstiški mestna, 0 do f, 44 00:02:21,650 --> 00:02:25,440 ustreza edinstven naročanje, ali edinstvena ureditev 45 00:02:25,440 --> 00:02:29,060 4 binarnih znakov, 4 bitov. 46 00:02:29,060 --> 00:02:34,570 In tako v tem smislu, lahko izražamo zelo dolge, zapletene, binarne številke 47 00:02:34,570 --> 00:02:36,440 v šestnajstiškem enkrat v veliko bolj jedrnat način, 48 00:02:36,440 --> 00:02:41,080 brez izgube informacij ali da bi storiti predvsem okorne pretvorb 49 00:02:41,080 --> 00:02:42,480 na te številke. 50 00:02:42,480 --> 00:02:44,880 >> Torej, kot sem rekel, vsak šestnajstiški mestna 51 00:02:44,880 --> 00:02:48,630 ustreza edinstven Razporeditev 4 binarnih številk. 52 00:02:48,630 --> 00:02:53,670 Torej binarni niz 0000 ustreza šestnajstiško števko 0. 53 00:02:53,670 --> 00:03:00,340 0110 ustreza šestnajstiško števko 6. 54 00:03:00,340 --> 00:03:05,225 In 1111 ustreza da šestnajstiškem mestno f. 55 00:03:05,225 --> 00:03:07,100 Če iščete na ta grafikon, zlasti 56 00:03:07,100 --> 00:03:09,099 če si pogledamo levi strani grafikona, 57 00:03:09,099 --> 00:03:11,970 že lahko vidite, da je košček od problema dvoumnosti tukaj. 58 00:03:11,970 --> 00:03:15,229 Decimalno 0 je precej ne razlikuje od šestnajstiško 0, 59 00:03:15,229 --> 00:03:18,020 razen dejstva, da je pod stolpec, ki pravi, šestnajstiški. 60 00:03:18,020 --> 00:03:22,130 >> Ampak mi verjetno ne bo vedno imajo ta stolpec tam. 61 00:03:22,130 --> 00:03:25,420 Na splošno, ko smo se izražajo številke v šestnajstiškem zapisu 62 00:03:25,420 --> 00:03:28,130 jasno razlikovati jim od decimalni zapis, 63 00:03:28,130 --> 00:03:31,860 smo jih navadno predpona s predpono 0x. 64 00:03:31,860 --> 00:03:35,990 0x ne pomeni nič, v resnici, to je samo namig, da nas kot ljudi 65 00:03:35,990 --> 00:03:39,190 da to, kar smo, da vidijo, ali nameravate začeti razčlenjevanje, 66 00:03:39,190 --> 00:03:40,750 je šestnajstiško število. 67 00:03:40,750 --> 00:03:45,590 Očitno je za višje številki a, b, c, d in f, kar ustreza 10-15 68 00:03:45,590 --> 00:03:48,840 to je precej nedvoumno, da je da je šestnajstiško število. 69 00:03:48,840 --> 00:03:51,620 In v resnici, vsaka šestnajstiški številka, ki ima črke v njej, 70 00:03:51,620 --> 00:03:54,642 je verjetno precej očitno kot šestnajstiško število. 71 00:03:54,642 --> 00:03:56,350 Ampak, še vedno, za Zaradi jasnosti je 72 00:03:56,350 --> 00:03:58,290 vedno dobra ideja, da predpono vsakič, ko 73 00:03:58,290 --> 00:04:01,835 nanašajo na številko kot šestnajstiško številka, ki jo prefixing z 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Torej, binarna, kot smo je dejal, ima krajevna vrednosti. 76 00:04:06,810 --> 00:04:10,040 Tam je tisti kraj, A dvojke mesto, štiric kraj, in osmice mesto. 77 00:04:10,040 --> 00:04:13,640 In decimalno ima tudi krajevna vrednote, na tisti, na desetine, na stotine in tisoče 78 00:04:13,640 --> 00:04:15,910 da smo vsi lahko odpokliče iz osnovne šole. 79 00:04:15,910 --> 00:04:18,050 In šestnajstiški ni Izjema tukaj, res. 80 00:04:18,050 --> 00:04:22,660 Prav tako ima krajevna vrednosti Toda namesto , da so pristojnosti 2 ali pristojnosti 10, 81 00:04:22,660 --> 00:04:25,050 oni pooblastil 16. 82 00:04:25,050 --> 00:04:29,410 >> Tako smo videli nekaj podobnega tem smo precej jasno vedeti, da je 397, kajne? 83 00:04:29,410 --> 00:04:33,420 No, če smo videli več, kot je ta, vemo, da to ni 397 več. 84 00:04:33,420 --> 00:04:36,730 To je šestnajstiški številka tri-9-7. 85 00:04:36,730 --> 00:04:39,680 To ni 397, to pomeni, nekaj drugega, 86 00:04:39,680 --> 00:04:44,180 ker smo s pomočjo pooblastila 16. Kot vse naših krajev vrednot namesto pooblastil 87 00:04:44,180 --> 00:04:45,560 10. 88 00:04:45,560 --> 00:04:50,570 V bistvu, tukaj bi se place vrednosti je tisti kraj, je sixteens mesto, 89 00:04:50,570 --> 00:04:55,080 in dvesto petdeset šestic mesto, ki ustrezajo naši ideji o tistih 90 00:04:55,080 --> 00:04:59,180 kraj, deset kraj in a stotine zanimivi, če je bilo število 397. 91 00:04:59,180 --> 00:05:03,620 Ampak, saj to je 0x 397, imamo posameznikova mesto, sixteens mesto, 92 00:05:03,620 --> 00:05:05,780 in dvesto petdeset šestic mesto. 93 00:05:05,780 --> 00:05:09,460 Ali pri 16 do 0 mestu, ki je 1. 94 00:05:09,460 --> 00:05:12,420 A 16 do prve močnostne mestu, 16. 95 00:05:12,420 --> 00:05:17,080 A 16 kvadrati mesto, 256, in tako naprej, in tako naprej, in tako naprej. 96 00:05:17,080 --> 00:05:24,400 Torej je ta številka res 3-krat 16 kvadrat, plus 9 krat 16 plus 7. 97 00:05:24,400 --> 00:05:28,980 Nisem naredil matematike tukaj, ampak to ni 397, je še veliko, veliko večji od tega. 98 00:05:28,980 --> 00:05:34,050 >> Podobno lahko imamo 0x ADC, dobro, da je čas 16 kvadrat. 99 00:05:34,050 --> 00:05:38,220 Ali pa, če smo prevedli, da naši pojma od decimalnih števil, ki je 10-krat 100 00:05:38,220 --> 00:05:44,160 16 kvadrat, plus d krat 16 ali plus 13 krat 16. 101 00:05:44,160 --> 00:05:47,410 In ne skrbite, če niste zapomnili da d je 13, ali kaj podobnega, 102 00:05:47,410 --> 00:05:49,201 tam ni preveč teh črkovnih znakov 103 00:05:49,201 --> 00:05:52,820 in bomo postali intuitivno precej hitro. 104 00:05:52,820 --> 00:05:59,800 Torej, še enkrat to je 10 krat 16 kvadrati, plus 13 krat 16 plus 12 krat 1. 105 00:05:59,800 --> 00:06:03,640 Torej 0x ADC. 106 00:06:03,640 --> 00:06:07,750 >> Torej, kot sem rekel, vsak skupina 4 binarnih števk 107 00:06:07,750 --> 00:06:10,000 ustreza enojna šestnajstiški mestna, 108 00:06:10,000 --> 00:06:12,570 in zato je dejansko res enostavno spremeniti in nazaj 109 00:06:12,570 --> 00:06:14,690 med hex in binarni. 110 00:06:14,690 --> 00:06:18,310 Če imate ta dolg niz binarne številke, vse, kar morate storiti 111 00:06:18,310 --> 00:06:21,320 se začnejo jih združi desno levo kot skupine 4. 112 00:06:21,320 --> 00:06:26,550 In potem si lahko utrdi jim v številkah estnajstikih, 113 00:06:26,550 --> 00:06:30,910 strogo omejevanje števila cifer moraš mentalno obdelati. 114 00:06:30,910 --> 00:06:33,680 Namesto, da bi 32 0 in 1 je, kot bomo videli v drugem, 115 00:06:33,680 --> 00:06:37,630 boste morda lahko, da ga dol za samo 8 šestnajstiških števk, veliko 116 00:06:37,630 --> 00:06:39,200 bolj jedrnato. 117 00:06:39,200 --> 00:06:43,500 >> Grafi nekaj diapozitivov na hrbtni strani vam pomaga, da ugotovimo, to kartiranje, 118 00:06:43,500 --> 00:06:45,660 čeprav, spet boste zapomniti precej hitro. 119 00:06:45,660 --> 00:06:47,320 Šli bomo skozi primer prav zdaj. 120 00:06:47,320 --> 00:06:51,507 Torej, če imamo več, kot je ta, to je res velika binarno število, 121 00:06:51,507 --> 00:06:53,340 ali kaj se zdi, da velika binarno število. 122 00:06:53,340 --> 00:06:56,260 In razlog, zakaj sem rekel, da je to Samo SO- je Behemoth, kajne? 123 00:06:56,260 --> 00:06:58,959 Obstaja toliko 0-ih in 1 je tam. 124 00:06:58,959 --> 00:07:01,000 Ampak mi verjetno ne res imeti občutek, kaj 125 00:07:01,000 --> 00:07:02,870 velikost te številke res. 126 00:07:02,870 --> 00:07:06,150 Nimamo pojma, kaj jo bi ustrezalo decimalko. 127 00:07:06,150 --> 00:07:09,744 In v resnici ne bomo niti videli, kaj je ustreza v decimalko zdaj. 128 00:07:09,744 --> 00:07:11,660 Mi morda lahko izražajo to na način, ki 129 00:07:11,660 --> 00:07:15,640 bi nam dal nekaj več informacij o tem, kako velik je ta številka. 130 00:07:15,640 --> 00:07:17,270 >> Torej, pojdimo k temu procesu konverzije. 131 00:07:17,270 --> 00:07:19,311 Prva stvar, ki jo potrebujemo storiti je, da želimo, da se skupini 132 00:07:19,311 --> 00:07:23,050 Te številke ven v skupinah od 4, ki se začne z desne 133 00:07:23,050 --> 00:07:24,120 in delajo v levo. 134 00:07:24,120 --> 00:07:27,260 Tam se zgodi, da bo 32 cifer tukaj, kar pomeni, da moramo 135 00:07:27,260 --> 00:07:33,210 lepo čisto odmor 8 skupin po 4. 136 00:07:33,210 --> 00:07:36,200 Ne pozabite, da vsako skupino 4 tukaj, nedvomno ustreza 137 00:07:36,200 --> 00:07:37,760 za šestnajstiško števko. 138 00:07:37,760 --> 00:07:42,080 Torej bomo spet Gradimo našo številka z desne in delovni levo. 139 00:07:42,080 --> 00:07:44,890 No, kaj je 1101? 140 00:07:44,890 --> 00:07:49,220 Dobro delamo math v naši glavi, imamo 1 v osmice prostoru, se 1 141 00:07:49,220 --> 00:07:54,310 v mestu štirih, 0 v parih mesto, in 1 v tisti mestu. 142 00:07:54,310 --> 00:07:58,820 To je 8 plus 4 plus 1, ki bi poznamo kot 13. 143 00:07:58,820 --> 00:08:02,400 Vendar pa verjetno ne bi pisal 13, ker delamo s šestnajstiško. 144 00:08:02,400 --> 00:08:07,982 Ga moramo pretvoriti v šestnajstiški ekvivalent 13, ki je d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, ter da je 0 v osmice mesto, v 0 v štirih mestu, 146 00:08:12,940 --> 00:08:15,190 A 1 v parih mestu in 1 v tisti mestu. 147 00:08:15,190 --> 00:08:16,880 To je 3. 148 00:08:16,880 --> 00:08:20,180 Mislim, da delaš to spet imamo tu 9. 149 00:08:20,180 --> 00:08:23,850 In potem 11, ampak to je b, odpoklic. 150 00:08:23,850 --> 00:08:30,570 2, 10-- ali a-- 6 in 4. 151 00:08:30,570 --> 00:08:34,669 In tako, da zelo velika niz od 0 in 1-ih na vrh 152 00:08:34,669 --> 00:08:38,549 je bolj jedrnato izrazil v šestnajstiškem kot 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> No, v redu, smo se naučili novo kul spretnost, kaj je smisel? 155 00:08:45,870 --> 00:08:49,560 Mogoče ne bomo uporabili to vse čas, saj bomo kmalu videli, 156 00:08:49,560 --> 00:08:52,370 bomo uporabili šestnajstiški precej Veliko kot programerjev. 157 00:08:52,370 --> 00:08:55,060 Ni nujno, da za Namen delaš math z njim, 158 00:08:55,060 --> 00:08:58,470 ampak zato, ker veliko krat pomnilniške naslove v našem sistemu 159 00:08:58,470 --> 00:09:00,440 so zastopani v šestnajstiškem. 160 00:09:00,440 --> 00:09:04,390 To je res jedrnat način za izražanje sicer okorni, binarne številke. 161 00:09:04,390 --> 00:09:06,440 In tako, spet, lahko vam not-- ste verjetno 162 00:09:06,440 --> 00:09:07,640 ne bo naredil nobene matematike z njim, niste 163 00:09:07,640 --> 00:09:09,848 bo množenjem šestnajstiška številke skupaj, 164 00:09:09,848 --> 00:09:11,770 ali počel kaj čudnega, kot je ta. 165 00:09:11,770 --> 00:09:16,120 Vendar je koristno spretnost imeti tako da lahko izražajo in razumeti 166 00:09:16,120 --> 00:09:23,290 spomin naslove in druge načini uporabe podatkov v C. 167 00:09:23,290 --> 00:09:26,240 >> Sem Doug Lloyd, to je CS50. 168 00:09:26,240 --> 00:09:28,028