1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 DOUG LLYOYD: numere hexazecimale Deci, ca și cum aveam nevoie de un alt număr de bază 3 00:00:08,510 --> 00:00:09,970 sistem corect? 4 00:00:09,970 --> 00:00:13,000 Ei bine, cele mai multe culturi occidentale, cum probabil sunteți familiarizați, 5 00:00:13,000 --> 00:00:16,560 folosi baza system-- zecimal 10, pentru a reprezenta datele numerice. 6 00:00:16,560 --> 00:00:20,520 Avem cifre de la 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 Și dacă avem nevoie pentru a reprezenta valori mai mari decât nouă, 8 00:00:23,890 --> 00:00:26,800 putem combina aceste cifre folosind noțiunea de valoare loc. 9 00:00:26,800 --> 00:00:30,115 Deci, pentru 10, avem un 1 cifre, urmat de o cifră 0 10 00:00:30,115 --> 00:00:32,240 și înțelegem intuitiv că ceea ce facem 11 00:00:32,240 --> 00:00:35,500 există suntem înmulțirea primul 1 cu 10, 12 00:00:35,500 --> 00:00:37,689 și apoi adăugarea 0 pentru un total de 10. 13 00:00:37,689 --> 00:00:40,480 Calculatoare face ceva destul de similare, cum esti, probabil, familiar, 14 00:00:40,480 --> 00:00:42,409 cu baza system-- binar 2. 15 00:00:42,409 --> 00:00:44,700 Diferența a fi că există doar 2 cifre 16 00:00:44,700 --> 00:00:46,770 să lucreze aplice: 0 și 1. 17 00:00:46,770 --> 00:00:49,033 Și astfel valorile noastre loc, în loc să fie unul, 18 00:00:49,033 --> 00:00:52,600 zece, sute, mii, deoarece acestea ar fi în sistemul zecimal, 19 00:00:52,600 --> 00:00:57,690 sunt una, două, patru, opt, și așa mai departe. 20 00:00:57,690 --> 00:01:00,842 Aici e un lucru, deși, aceste 0 și 1, in special 21 00:01:00,842 --> 00:01:03,800 dacă suntem oameni de stiinta de calculator și facem o mulțime de programare 22 00:01:03,800 --> 00:01:06,924 sau de lucru cu calculatoare, merg care urmează să fie văzut o mulțime de numere binare. 23 00:01:06,924 --> 00:01:11,660 Iar cei 0 și 1 de la mari lanțuri poate fi foarte dificil pentru a analiza. 24 00:01:11,660 --> 00:01:16,610 Nu putem uita doar la un șir de Lui 0 și 1 și știu neapărat 25 00:01:16,610 --> 00:01:17,810 exact ceea ce este. 26 00:01:17,810 --> 00:01:21,980 Dar este încă util să fie în măsură date Express în același mod 27 00:01:21,980 --> 00:01:23,480 că un calculator nu. 28 00:01:23,480 --> 00:01:26,580 Avem această noțiune de Sistemul hexazecimal, care este 29 00:01:26,580 --> 00:01:29,840 de bază 16, în loc de baza 10 sau de bază 2. 30 00:01:29,840 --> 00:01:34,420 Ceea ce înseamnă că avem 16 cifre pentru a lucra cu loc de 10 sau 2. 31 00:01:34,420 --> 00:01:37,180 Și este un mult mai mod concis de a exprima 32 00:01:37,180 --> 00:01:41,210 informații binare pe un sistem informatic, este mult mai ușor de înțeles uman. 33 00:01:41,210 --> 00:01:43,520 Așa că avem cifre 0 prin 9, și apoi 34 00:01:43,520 --> 00:01:49,480 avem, de asemenea acestea plus șase digits-- o, b, c, d, e, f și, care reprezintă 10, 35 00:01:49,480 --> 00:01:56,050 noțiunea noastră de 10, 11, 12, 13, 14 și 15, în zecimal. 36 00:01:56,050 --> 00:01:59,787 Uneori, de altfel, de asemenea, veți vedea aceste o prin F ar fi de capital A 37 00:01:59,787 --> 00:02:01,620 prin F, care este mod de am tendința să o fac. 38 00:02:01,620 --> 00:02:04,560 Este doar preferat meu stil, dar nici este bine, 39 00:02:04,560 --> 00:02:07,870 ambele reprezintă destul de cam același lucru. 40 00:02:07,870 --> 00:02:09,090 >> Deci, de ce este hexazecimal rece? 41 00:02:09,090 --> 00:02:11,580 De ce avem nevoie pentru a utiliza acest altă bază suplimentar? 42 00:02:11,580 --> 00:02:14,310 Avem deja 2 și 10, de ce avem nevoie de 16? 43 00:02:14,310 --> 00:02:21,650 Ei bine 16 este o putere de 2, și așa fiecare cifră hexazecimală, 0 prin f, 44 00:02:21,650 --> 00:02:25,440 corespunde unui unic comanda, sau aranjament unic 45 00:02:25,440 --> 00:02:29,060 de 4 cifre binare, 4 biți. 46 00:02:29,060 --> 00:02:34,570 Și astfel, în acest sens, putem exprima numere foarte lungi, complexe, binare 47 00:02:34,570 --> 00:02:36,440 în hexazecimal într-un mult mult mai concis, 48 00:02:36,440 --> 00:02:41,080 fără a pierde informații sau a fi nevoie să face conversii în special greoaie 49 00:02:41,080 --> 00:02:42,480 cu privire la aceste numere. 50 00:02:42,480 --> 00:02:44,880 >> Deci, așa cum am spus, fiecare cifră hexazecimală 51 00:02:44,880 --> 00:02:48,630 corespunde unui unic aranjament de 4 cifre binare. 52 00:02:48,630 --> 00:02:53,670 Deci șirul binar 0000 corespunde cifră hexazecimal 0. 53 00:02:53,670 --> 00:03:00,340 0110 corespunde cifre hexazecimale 6. 54 00:03:00,340 --> 00:03:05,225 Și 1111 corespunde la cifre f hexazecimal. 55 00:03:05,225 --> 00:03:07,100 Dacă sunteți în căutarea la această diagramă, în special 56 00:03:07,100 --> 00:03:09,099 dacă sunteți în căutarea la din partea stanga a graficului, 57 00:03:09,099 --> 00:03:11,970 puteți vedea deja există un pic de o problemă ambiguitate aici. 58 00:03:11,970 --> 00:03:15,229 Zecimal 0 este destul de mult imposibil de distins de hexazecimal 0, 59 00:03:15,229 --> 00:03:18,020 în afară de faptul că este în conformitate cu o coloană care spune hexazecimal. 60 00:03:18,020 --> 00:03:22,130 >> Dar noi, probabil, nu va fi întotdeauna au coloana acolo. 61 00:03:22,130 --> 00:03:25,420 În general, atunci când ne exprimăm numere în notație hexazecimală 62 00:03:25,420 --> 00:03:28,130 pentru a distinge în mod clar le de la notația zecimală, 63 00:03:28,130 --> 00:03:31,860 De obicei le prefixul cu prefixul 0x. 64 00:03:31,860 --> 00:03:35,990 0x nu înseamnă nimic, în realitate, este doar un indiciu pentru noi ca oameni 65 00:03:35,990 --> 00:03:39,190 că ceea ce suntem pe cale de a vedea, sau pe cale de a începe parsarea, 66 00:03:39,190 --> 00:03:40,750 este un număr hexazecimal. 67 00:03:40,750 --> 00:03:45,590 Evident pentru cifre superioare a, b, c, d, și f, care corespund la 10-15 68 00:03:45,590 --> 00:03:48,840 e destul de lipsite de ambiguitate care este care este un număr hexazecimal. 69 00:03:48,840 --> 00:03:51,620 Și, de fapt, orice hexazecimal număr care are litere în ea, 70 00:03:51,620 --> 00:03:54,642 este, probabil, destul de evident ca număr hexazecimal. 71 00:03:54,642 --> 00:03:56,350 Dar, totuși, pentru Din motive de claritate, este 72 00:03:56,350 --> 00:03:58,290 întotdeauna o idee bună de a prefixul de fiecare dată când 73 00:03:58,290 --> 00:04:01,835 se referă la o cifră ca hexazecimal Numărul de prefixarea un 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Deci, binar, așa cum am a spus, are valori loc. 76 00:04:06,810 --> 00:04:10,040 Nu e locul celor, un loc câte două, un loc patru labe, și un loc optari. 77 00:04:10,040 --> 00:04:13,640 Și, de asemenea, valorile zecimală are loc, mei, zeci, sute, mii și 78 00:04:13,640 --> 00:04:15,910 ca noi toți să amintim de la școala primară. 79 00:04:15,910 --> 00:04:18,050 Și hexazecimal nu este excepție aici, într-adevăr. 80 00:04:18,050 --> 00:04:22,660 Ea are, de asemenea, valori loc, dar în loc de a fi puteri de 2 sau puteri de 10, 81 00:04:22,660 --> 00:04:25,050 acestea sunt puteri de 16. 82 00:04:25,050 --> 00:04:29,410 >> Deci, vom vedea un număr de genul asta ne cunosc destul de clar că e 397, nu? 83 00:04:29,410 --> 00:04:33,420 Ei bine, dacă vom vedea un număr de genul asta, știm acest lucru nu mai este 397. 84 00:04:33,420 --> 00:04:36,730 Aceasta este hexazecimal numărul trei de nouă șapte. 85 00:04:36,730 --> 00:04:39,680 Nu e 397, aceasta înseamnă ceva diferit, 86 00:04:39,680 --> 00:04:44,180 pentru că suntem folosind puterile 16 ca toate de valorile noastre loc în loc de competențe 87 00:04:44,180 --> 00:04:45,560 de 10. 88 00:04:45,560 --> 00:04:50,570 De fapt, valorile au loc aici ar fi locul celor, locul sixteens, 89 00:04:50,570 --> 00:04:55,080 și locul-200-50-șesari, care corespund ideea noastra de a celor 90 00:04:55,080 --> 00:04:59,180 loc, zeci loc, și o sute de loc, în cazul în care numărul a fost de 397. 91 00:04:59,180 --> 00:05:03,620 Dar din moment ce este 0x 397, avem un loc cele, sixteens loc, 92 00:05:03,620 --> 00:05:05,780 și un loc-200-50-șesari. 93 00:05:05,780 --> 00:05:09,460 Sau, un 16 la 0 rând, care este 1. 94 00:05:09,460 --> 00:05:12,420 Un 16 la primul loc de putere, 16. 95 00:05:12,420 --> 00:05:17,080 A 16 patrat loc, 256, și așa mai departe, și așa mai departe, și așa mai departe. 96 00:05:17,080 --> 00:05:24,400 Deci acest număr este într-adevăr de 3 ori 16 pătrat, plus 9 ori 16, plus 7. 97 00:05:24,400 --> 00:05:28,980 N-am făcut matematica aici, dar nu este 397, e mult, mult mai mare decât cel. 98 00:05:28,980 --> 00:05:34,050 >> În mod similar, am putea avea ADC 0x, bine că e un moment de 16 pătrat. 99 00:05:34,050 --> 00:05:38,220 Sau, dacă ne-am traduce ca la noțiunea noastră de numere zecimale, e de 10 ori 100 00:05:38,220 --> 00:05:44,160 16 pătrat, plus ori d 16, sau 13 de ori, plus 16. 101 00:05:44,160 --> 00:05:47,410 Și nu vă faceți griji dacă nu ați memorat că d este de 13, sau ceva de genul asta, 102 00:05:47,410 --> 00:05:49,201 nu prea multe din aceste cifre scrisoare 103 00:05:49,201 --> 00:05:52,820 și-l va deveni intuitiv destul de repede. 104 00:05:52,820 --> 00:05:59,800 Deci, din nou acest lucru este de 10 ori 16 pătrat, plus 13 ori 16, plus 12 ori 1. 105 00:05:59,800 --> 00:06:03,640 ADC Deci 0x. 106 00:06:03,640 --> 00:06:07,750 >> Deci, cum am spus, fiecare grup de 4 cifre binare 107 00:06:07,750 --> 00:06:10,000 corespunde unei singure cifre hexazecimal, 108 00:06:10,000 --> 00:06:12,570 și așa este de fapt într-adevăr ușor de a schimba înainte și înapoi 109 00:06:12,570 --> 00:06:14,690 între hex și binar. 110 00:06:14,690 --> 00:06:18,310 Dacă aveți această lung șir de cifre binare, tot ce trebuie să faci 111 00:06:18,310 --> 00:06:21,320 este începe gruparea lor dreaptă la stânga ca grupuri de 4. 112 00:06:21,320 --> 00:06:26,550 Și apoi puteți consolida le în numere hexazecimale, 113 00:06:26,550 --> 00:06:30,910 limiteaza drastic numărul de cifre trebuie să proceseze mental. 114 00:06:30,910 --> 00:06:33,680 În loc de 32 0 și 1, a cum vom vedea într-o secundă, 115 00:06:33,680 --> 00:06:37,630 s-ar putea fi capabil să-l jos la doar 8 cifre hexazecimale, o mulțime 116 00:06:37,630 --> 00:06:39,200 mai concis. 117 00:06:39,200 --> 00:06:43,500 >> Graficele câteva slide-uri spate va ajuta să dau seama acest cartografiere, 118 00:06:43,500 --> 00:06:45,660 deși, din nou, veți memoreze o destul de repede. 119 00:06:45,660 --> 00:06:47,320 Vom merge printr-un exemplu, chiar acum. 120 00:06:47,320 --> 00:06:51,507 Deci, dacă avem un număr de genul asta, acest număr cu adevărat mare binar, 121 00:06:51,507 --> 00:06:53,340 sau ceea ce pare a fi un mare număr binar. 122 00:06:53,340 --> 00:06:56,260 Și motivul pentru care am spus asta, e doar deci-- este un gigant, nu? 123 00:06:56,260 --> 00:06:58,959 Există atât de multe 0 și 1 este acolo. 124 00:06:58,959 --> 00:07:01,000 Dar noi, probabil, nu au într-adevăr un sentiment de ceea ce 125 00:07:01,000 --> 00:07:02,870 amploarea acestui număr este cu adevărat. 126 00:07:02,870 --> 00:07:06,150 Noi nu avem nici o idee despre ceea ce se ar corespunde unei zecimală. 127 00:07:06,150 --> 00:07:09,744 Și, de fapt nici măcar nu vom vedea ce corespunde în zecimal acum. 128 00:07:09,744 --> 00:07:11,660 S-ar putea fi în măsură să exprima într-un mod care 129 00:07:11,660 --> 00:07:15,640 ne-ar da mai multe informatii despre cât de mare este acest număr. 130 00:07:15,640 --> 00:07:17,270 >> Deci, haideți să mergem la acest proces de conversie. 131 00:07:17,270 --> 00:07:19,311 Primul lucru pe care avem nevoie să faci este dorim să grup 132 00:07:19,311 --> 00:07:23,050 aceste cifre afară, în grupuri de 4, pornind de la dreapta 133 00:07:23,050 --> 00:07:24,120 și de lucru la stânga. 134 00:07:24,120 --> 00:07:27,260 Nu se întâmplă să fie de 32 de cifre aici, ceea ce înseamnă că avem 135 00:07:27,260 --> 00:07:33,210 o pauza curat frumos de 8 grupe de 4. 136 00:07:33,210 --> 00:07:36,200 Amintiți-vă că fiecare grup de 4 aici, mod unic corespunde 137 00:07:36,200 --> 00:07:37,760 la o cifră hexazecimală. 138 00:07:37,760 --> 00:07:42,080 Deci, vom începe din nou clădirea noastră Numărul de pe dreapta, și să lucreze la stânga. 139 00:07:42,080 --> 00:07:44,890 Ei bine, ce e 1,101? 140 00:07:44,890 --> 00:07:49,220 Ei bine, vom face matematica în capul nostru, Avem 1 în locul optari, o 1 141 00:07:49,220 --> 00:07:54,310 în locul patru labe, o 0 în doi cate doi loc, și un 1 în locul celor. 142 00:07:54,310 --> 00:07:58,820 Asta e 8 plus 4 plus 1, care ne-ar ști ca 13. 143 00:07:58,820 --> 00:08:02,400 Dar noi probabil nu ar scrie 13 din, pentru că lucrăm cu hexazecimal. 144 00:08:02,400 --> 00:08:07,982 Avem nevoie să-l convertească la hexazecimal echivalent de 13, care este d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, bine că e un 0 în loc optari, o 0 în patru labe loc, 146 00:08:12,940 --> 00:08:15,190 o 1 în locul câte două, și un 1 în locul celor. 147 00:08:15,190 --> 00:08:16,880 Asta e 3. 148 00:08:16,880 --> 00:08:20,180 Adică face asta din nou, avem aici 9. 149 00:08:20,180 --> 00:08:23,850 Și apoi 11, dar asta e b, amintesc. 150 00:08:23,850 --> 00:08:30,570 2, 10-- sau un-- 6, și 4. 151 00:08:30,570 --> 00:08:34,669 Și pentru ca șir foarte mare de 0 și 1 de a partea de sus 152 00:08:34,669 --> 00:08:38,549 se exprimă mai mult concis în hexazecimal ca 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> Ei bine, OK, am învățat o nouă abilitate rece, ceea ce este punctul? 155 00:08:45,870 --> 00:08:49,560 S-ar putea ca nu utilizați asta tot timp, așa cum vom vedea în curând, 156 00:08:49,560 --> 00:08:52,370 vom folosi hexazecimal destul de o mulțime de programatori. 157 00:08:52,370 --> 00:08:55,060 Nu neapărat pentru scopul de a face matematica cu ea, 158 00:08:55,060 --> 00:08:58,470 ci pentru că o mulțime de ori adresele de memorie din sistemul nostru 159 00:08:58,470 --> 00:09:00,440 sunt reprezentate în hexazecimal. 160 00:09:00,440 --> 00:09:04,390 Este un mod foarte concis de a exprima , numere binare altfel greoaie. 161 00:09:04,390 --> 00:09:06,440 Și astfel, din nou, s-ar putea not-- esti, probabil, 162 00:09:06,440 --> 00:09:07,640 nu de gând să faci orice matematica cu el, nu sunteți 163 00:09:07,640 --> 00:09:09,848 O să fie multiplicarea numere hexazecimale împreună, 164 00:09:09,848 --> 00:09:11,770 sau de a face ceva ciudat de genul asta. 165 00:09:11,770 --> 00:09:16,120 Dar este o abilitate utilă pentru a avea astfel încât să puteți exprima și înțelege 166 00:09:16,120 --> 00:09:23,290 memorie adrese, și alte modalități de utilizare a datelor în C. 167 00:09:23,290 --> 00:09:26,240 >> Sunt Doug Lloyd, aceasta este CS50. 168 00:09:26,240 --> 00:09:28,028