1 00:00:00,000 --> 00:00:05,511 2 00:00:05,511 --> 00:00:08,510 DOUG LLYOYD: So hexadecimal numero, bilang kung kailangan namin ng isa pang base number 3 00:00:08,510 --> 00:00:09,970 scheme right? 4 00:00:09,970 --> 00:00:13,000 Well, karamihan sa Western kultura, habang ikaw ay malamang ay pamilyar, 5 00:00:13,000 --> 00:00:16,560 gamitin ang mga decimal system-- base 10, na kumakatawan sa data ng numero. 6 00:00:16,560 --> 00:00:20,520 Mayroon kaming ang mga digit na 0, 1, 2, 3, 5, 6, 7,8,9. 7 00:00:20,520 --> 00:00:23,890 At kung kailangan namin upang kumatawan mga halaga na mas mataas kaysa sa siyam, 8 00:00:23,890 --> 00:00:26,800 maaari naming pagsamahin ang mga digit gamit ang paniwala ng mga lugar na halaga. 9 00:00:26,800 --> 00:00:30,115 Kaya para sa 10, mayroon kaming isang 1 digit na sinusundan ng isang 0 digit 10 00:00:30,115 --> 00:00:32,240 at intuitively maunawaan natin na kung anong ginagawa namin 11 00:00:32,240 --> 00:00:35,500 doon ay kami ay pagpaparami ang unang 1 sa 10, 12 00:00:35,500 --> 00:00:37,689 at pagkatapos ay pagdaragdag ng 0 para sa kabuuan na 10. 13 00:00:37,689 --> 00:00:40,480 Computers gawin ang isang bagay pretty katulad, bilang ikaw ay malamang na pamilyar, 14 00:00:40,480 --> 00:00:42,409 sa binary system-- base 2. 15 00:00:42,409 --> 00:00:44,700 Ang pagkakaiba ng pagiging may na digit lamang 2 16 00:00:44,700 --> 00:00:46,770 upang gumana with-- 0 at 1. 17 00:00:46,770 --> 00:00:49,033 At sa gayon ang aming mga halaga ng lugar, sa halip ng pagiging isa, 18 00:00:49,033 --> 00:00:52,600 sampung, daang, libo, habang ang mga ito ay magiging sa decimal system, 19 00:00:52,600 --> 00:00:57,690 ay isa, dalawa, apat, walo, at iba pa. 20 00:00:57,690 --> 00:01:00,842 Narito ang bagay bagaman, mga 0 at 1, lalo na 21 00:01:00,842 --> 00:01:03,800 kung kami ay pagiging siyentipiko computer at kami ay gumagawa ng isang pulutong ng mga programa 22 00:01:03,800 --> 00:01:06,924 o nagtatrabaho sa mga computer, ay pagpunta na nakakakita ng isang pulutong ng mga binary numero. 23 00:01:06,924 --> 00:01:11,660 At yaong 0 at 1 sa malaking chains ay maaaring maging lubhang mahirap na i-parse. 24 00:01:11,660 --> 00:01:16,610 Hindi lamang namin maaaring tumingin sa isang string ng mga 0 at 1 at kinakailangang malaman 25 00:01:16,610 --> 00:01:17,810 kung ano mismo ang ito ay. 26 00:01:17,810 --> 00:01:21,980 Ngunit ito ay kapaki-pakinabang pa rin para ma express data sa parehong paraan 27 00:01:21,980 --> 00:01:23,480 na ang isang computer ay. 28 00:01:23,480 --> 00:01:26,580 Mayroon kaming ang paniwala na ito ng hexadecimal system, na kung saan ay 29 00:01:26,580 --> 00:01:29,840 base 16, sa halip na base 10 o base 2. 30 00:01:29,840 --> 00:01:34,420 Na nangangahulugan na kami ay may 16 digit upang gumana sa halip ng 10 o 2. 31 00:01:34,420 --> 00:01:37,180 At ito ay isang mas maigsi na paraan upang ipahayag ang 32 00:01:37,180 --> 00:01:41,210 binary impormasyon sa isang computer system, ito ay mas pantao maliwanag. 33 00:01:41,210 --> 00:01:43,520 Kaya mayroon kaming ang mga digit 0 hanggang 9, at pagkatapos ay 34 00:01:43,520 --> 00:01:49,480 kami ay mayroon din ng mga dagdag na anim na digits-- a, b, c, d, e, at f, na kumakatawan sa 10, 35 00:01:49,480 --> 00:01:56,050 aming paniwala ng 10, 11, 12, 13, 14 at 15, sa decimal. 36 00:01:56,050 --> 00:01:59,787 Minsan, sa daan, makikita din sa iyo makita ang mga ito ng isang sa pamamagitan ng f bilang capital A 37 00:01:59,787 --> 00:02:01,620 sa pamamagitan ng F, na siyang paraan ako ay madalas na gawin ito. 38 00:02:01,620 --> 00:02:04,560 Ito lang ang aking mga ginustong estilo, ngunit alinman ay pinong, 39 00:02:04,560 --> 00:02:07,870 sila parehong kumakatawan pretty magkano ang parehong bagay. 40 00:02:07,870 --> 00:02:09,090 >> Kaya bakit hexadecimal cool? 41 00:02:09,090 --> 00:02:11,580 Bakit kailangan namin upang gamitin ang iba pang mga karagdagang base? 42 00:02:11,580 --> 00:02:14,310 Kami ay mayroon ng 2 at 10, bakit kailangan namin ng 16? 43 00:02:14,310 --> 00:02:21,650 Well 16 ay isang kapangyarihan ng 2, at iba bawat hexadecimal digit, 0 hanggang f, 44 00:02:21,650 --> 00:02:25,440 ay kumakatawan sa isang natatanging pag-order, o natatanging arrangement 45 00:02:25,440 --> 00:02:29,060 ng 4 binary digits, 4 bits. 46 00:02:29,060 --> 00:02:34,570 At kaya sa na kahulugan, maaari naming ipahayag ang masyadong mahaba, kumplikadong, binary numero 47 00:02:34,570 --> 00:02:36,440 sa hexadecimal sa isang mas maigsi paraan, 48 00:02:36,440 --> 00:02:41,080 nang hindi nawawala ang impormasyon o pagkakaroon ng gawin lalo nakakabahala conversion 49 00:02:41,080 --> 00:02:42,480 sa mga numero. 50 00:02:42,480 --> 00:02:44,880 >> Kaya, tulad ng sinabi ko lang, bawat hexadecimal digit 51 00:02:44,880 --> 00:02:48,630 ay kumakatawan sa isang natatanging arrangement of 4 binary digits. 52 00:02:48,630 --> 00:02:53,670 Kaya ang binary string 0000 tumutugon sa hexadecimal digit 0. 53 00:02:53,670 --> 00:03:00,340 0110 ay tumutugon sa hexadecimal digit 6. 54 00:03:00,340 --> 00:03:05,225 At 1111 tumutugon sa hexadecimal digit f. 55 00:03:05,225 --> 00:03:07,100 Kung ikaw ay naghahanap sa tsart na ito, lalo na 56 00:03:07,100 --> 00:03:09,099 kung ikaw ay naghahanap sa kaliwang bahagi ng chart, 57 00:03:09,099 --> 00:03:11,970 maaari mong makita na mayroong isang piraso ng isang problema kalabuan dito. 58 00:03:11,970 --> 00:03:15,229 Decimal 0 ay medyo marami hindi makilala mula sa hexadecimal 0, 59 00:03:15,229 --> 00:03:18,020 maliban sa ang katunayan na ito ay sa ilalim ng ang isang haligi na nagsasabing hexadecimal. 60 00:03:18,020 --> 00:03:22,130 >> Ngunit marahil hindi kami palaging Mayroon hanay na iyon doon. 61 00:03:22,130 --> 00:03:25,420 Karaniwan kapag kami ay pagpapahayag numero sa hexadecimal notasyon 62 00:03:25,420 --> 00:03:28,130 upang malinaw na makilala ito mula sa decimal notasyon, 63 00:03:28,130 --> 00:03:31,860 kami ay karaniwang prefix sa kanila may prefix 0 x. 64 00:03:31,860 --> 00:03:35,990 0 x wala sa katotohanan ay nangangahulugan na, ito ay isang palatandaan lamang upang amin bilang mga tao 65 00:03:35,990 --> 00:03:39,190 na kung ano ang hindi namin tungkol sa upang makita, o tungkol sa upang simulan ang pag-parse, 66 00:03:39,190 --> 00:03:40,750 ay isang numero ng hexadecimal. 67 00:03:40,750 --> 00:03:45,590 Malinaw na para sa mas mataas na numero ay a, b, c, d, at f, na tumutugma sa 10-15 68 00:03:45,590 --> 00:03:48,840 ito ay medyo malabo na na isang bilang hexadecimal. 69 00:03:48,840 --> 00:03:51,620 At sa katunayan, ang anumang mga hexadecimal number na may mga titik sa loob nito, 70 00:03:51,620 --> 00:03:54,642 ay marahil medyo maliwanag bilang hexadecimal numero. 71 00:03:54,642 --> 00:03:56,350 Ngunit, pa rin, para sa mga kapakanan ng kaliwanagan, ito ay 72 00:03:56,350 --> 00:03:58,290 palaging isang magandang ideya na prefix sa bawat oras na 73 00:03:58,290 --> 00:04:01,835 sumangguni sa isang digit bilang hexadecimal number sa pamamagitan ng prefixing isang 0x. 74 00:04:01,835 --> 00:04:04,370 75 00:04:04,370 --> 00:04:06,810 >> Kaya, binary, bilang namin sinabi, ay may mga halaga ng lugar. 76 00:04:06,810 --> 00:04:10,040 Mayroong ang lugar na iyan, isang lugar twos, isang lugar nakadapa, at isang tag walo lugar. 77 00:04:10,040 --> 00:04:13,640 At decimal din ay may mga halaga ng lugar, ang mga bago, sampu-sampung, daan-daan, at libo-libo 78 00:04:13,640 --> 00:04:15,910 na maaari naming ang lahat ng pagpapabalik mula sa mababang paaralan. 79 00:04:15,910 --> 00:04:18,050 At hexadecimal ay walang exception dito, talaga. 80 00:04:18,050 --> 00:04:22,660 Ito rin ay may mga halaga ng lugar ngunit sa halip ng pagiging kapangyarihan ng 2 o mga kapangyarihan ng 10, 81 00:04:22,660 --> 00:04:25,050 ang mga ito ay mga kapangyarihan ng 16. 82 00:04:25,050 --> 00:04:29,410 >> Kaya nakikita natin ang isang numero tulad nito tayo pretty malinaw na malaman ito ay 397, di ba? 83 00:04:29,410 --> 00:04:33,420 Well kung makita namin ang isang bilang tulad nito, alam namin na ito ay hindi 397 anymore. 84 00:04:33,420 --> 00:04:36,730 Ito ang hexadecimal numero ng tatlong-siyam-pito. 85 00:04:36,730 --> 00:04:39,680 Ito ay hindi 397, ang ibig sabihin nito isang bagay na naiiba, 86 00:04:39,680 --> 00:04:44,180 dahil kami ay gumagamit ng mga kapangyarihan ng 16 na rin ang lahat ng aming mga halaga ng lugar sa halip ng kapangyarihan 87 00:04:44,180 --> 00:04:45,560 of 10. 88 00:04:45,560 --> 00:04:50,570 Sa katunayan, ang mga halaga ng lugar dito gagawin ang lugar na iyan, ang lugar sixteens, 89 00:04:50,570 --> 00:04:55,080 at ang dalawang-daang-limampu't magkasundu lugar, na tumutugma sa aming mga ideya ng isang buhay 90 00:04:55,080 --> 00:04:59,180 lugar, lugar ng sampu, at isang daang lugar, kung ang bilang ay 397. 91 00:04:59,180 --> 00:05:03,620 Ngunit dahil ito ay 0 x 397, kami ay isang buhay na lugar na lugar, sixteens, 92 00:05:03,620 --> 00:05:05,780 at isang dalawang-daang-limampu't magkasundu lugar. 93 00:05:05,780 --> 00:05:09,460 O, isang 16 sa 0 lugar, kung saan ay 1. 94 00:05:09,460 --> 00:05:12,420 Ang isang 16 na ang unang kapangyarihan na lugar, 16. 95 00:05:12,420 --> 00:05:17,080 Ang isang 16 nakalapat na lugar, 256, at iba pa, at iba pa, at iba pa. 96 00:05:17,080 --> 00:05:24,400 Kaya ang bilang na ito ay talagang 3 beses 16 nakalapat, plus 9 times 16, plus 7. 97 00:05:24,400 --> 00:05:28,980 Hindi ko gawin ang matematika dito, ngunit ito ay hindi 397, ito ay marami, higit na mas malaki kaysa sa na. 98 00:05:28,980 --> 00:05:34,050 >> Katulad nito, maaari kaming magkaroon ng 0x adc, mabuti na ang isang beses na 16 nakalapat. 99 00:05:34,050 --> 00:05:38,220 O kung isalin natin na sa aming paniwala ng mga numero ng decimal, na 10 beses 100 00:05:38,220 --> 00:05:44,160 16 nakalapat, plus d beses 16, o plus 13 beses 16. 101 00:05:44,160 --> 00:05:47,410 At huwag mag-alala kung hindi mo kabisado na d ay 13, o anumang bagay tulad na, 102 00:05:47,410 --> 00:05:49,201 may hindi masyadong maraming mga titik na digit 103 00:05:49,201 --> 00:05:52,820 at makikita ito maging intuitive medyo mabilis. 104 00:05:52,820 --> 00:05:59,800 Kaya muli na ito ay 10 beses 16 nakalapat, plus 13 beses 16, plus 12 ulit 1. 105 00:05:59,800 --> 00:06:03,640 Kaya 0 x adc. 106 00:06:03,640 --> 00:06:07,750 >> Kaya, tulad ng sinabi ko, ang bawat grupo ng 4 binary digits 107 00:06:07,750 --> 00:06:10,000 tumutugma sa isang solong hexadecimal digit, 108 00:06:10,000 --> 00:06:12,570 at sa gayon ito ay aktwal na talagang madaling baguhin lipat 109 00:06:12,570 --> 00:06:14,690 pagitan ng hex at binary. 110 00:06:14,690 --> 00:06:18,310 Kung mayroon kang mga ito mahabang string ng mga binary digits, ang lahat ng kailangan mong gawin 111 00:06:18,310 --> 00:06:21,320 ay magsisimula pagpapangkat ng mga ito karapatan sa kaliwa bilang mga grupo ng 4. 112 00:06:21,320 --> 00:06:26,550 At pagkatapos ay maaari mong pag-isahin ang mga ito sa mga numero ng hexadecimal, 113 00:06:26,550 --> 00:06:30,910 malubhang nililimitahan ang bilang ng mga digits mayroon ka upang i-proseso sa pag-iisip. 114 00:06:30,910 --> 00:06:33,680 Sa halip na 32 0 at 1, dahil kakailanganin namin makita sa isang segundo, 115 00:06:33,680 --> 00:06:37,630 maaaring ikaw ay maaaring makakuha ng ito pababa hanggang 8 lang hexadecimal digit, isang pulutong 116 00:06:37,630 --> 00:06:39,200 mas maigsi. 117 00:06:39,200 --> 00:06:43,500 >> Ang mga chart ng ilang mga slide-back ay makakatulong sa iyo upang malaman kung ito mapping, 118 00:06:43,500 --> 00:06:45,660 bagaman, muli makikita mo kabisaduhin ito medyo mabilis. 119 00:06:45,660 --> 00:06:47,320 Kami ay pumunta sa pamamagitan ng isang halimbawa ngayon. 120 00:06:47,320 --> 00:06:51,507 Kaya kung kami ay may isang numero na ito, ito ay talagang malaking binary na numero, 121 00:06:51,507 --> 00:06:53,340 o kung ano ang ay lilitaw upang maging isang malaking binary number. 122 00:06:53,340 --> 00:06:56,260 At ang dahilan kung bakit sinasabi ko na, ito ay lamang so-- ito ay isang behemoth, di ba? 123 00:06:56,260 --> 00:06:58,959 Mayroong maraming mga 0 at 1 doon. 124 00:06:58,959 --> 00:07:01,000 Ngunit marahil kami ay hindi talagang magkaroon ng isang katinuan kung ano 125 00:07:01,000 --> 00:07:02,870 ang kalakhan ng mga numero na ito ay tunay. 126 00:07:02,870 --> 00:07:06,150 Wala kaming anumang mga ideya kung ano ito ay tumutugma sa isang decimal. 127 00:07:06,150 --> 00:07:09,744 At sa katunayan namin ay hindi kahit na makita kung ano ito tumutugon sa sa decimal ngayon. 128 00:07:09,744 --> 00:07:11,660 Maaari naming magagawang upang ipahayag ito sa isang paraan na 129 00:07:11,660 --> 00:07:15,640 bigyan kami ng ilang mga karagdagang impormasyon lamang tungkol sa kung paano malaki ang bilang na ito ay. 130 00:07:15,640 --> 00:07:17,270 >> Kaya sabihin pumunta sa na proseso ng conversion. 131 00:07:17,270 --> 00:07:19,311 Ang unang bagay na kailangan namin gawin ay gusto naming grupo 132 00:07:19,311 --> 00:07:23,050 mga numero ay out sa mga grupo ng 4, na nagsisimula mula sa kanan 133 00:07:23,050 --> 00:07:24,120 at nagtatrabaho sa kaliwa. 134 00:07:24,120 --> 00:07:27,260 May mangyari na 32 digit dito, na nangangahulugan na namin 135 00:07:27,260 --> 00:07:33,210 isang magandang malinis break ng 8 mga grupo ng 4. 136 00:07:33,210 --> 00:07:36,200 Tandaan na ang bawat pangkat ng 4 dito, katangi tumutugma 137 00:07:36,200 --> 00:07:37,760 sa isang hexadecimal digit. 138 00:07:37,760 --> 00:07:42,080 Kaya makikita namin simulan muli gusali ng aming number mula sa kanan, at kaliwa nagtatrabaho. 139 00:07:42,080 --> 00:07:44,890 Well kung ano ang 1101? 140 00:07:44,890 --> 00:07:49,220 Well ginagawa namin ang matematika sa ating ulo, kami ay may 1 sa lugar eights, ang isang 1 141 00:07:49,220 --> 00:07:54,310 sa lugar nakadapa, isang 0 sa twos lugar, at 1 sa lugar na iyan. 142 00:07:54,310 --> 00:07:58,820 Iyan ay 8 plus 4 plus 1, kung saan nais naming malaman bilang 13. 143 00:07:58,820 --> 00:08:02,400 Ngunit kami ay hindi malamang na magsulat 13 out, dahil kami ay nagtatrabaho sa hexadecimal. 144 00:08:02,400 --> 00:08:07,982 Kailangan namin upang i-convert ito sa hexadecimal katumbas ng 13, na kung saan ay d. 145 00:08:07,982 --> 00:08:12,940 >> 0011, mabuti na ang isang 0 sa eights lugar, isang 0 sa lugar nakadapa, 146 00:08:12,940 --> 00:08:15,190 isang 1 sa lugar twos, at 1 sa lugar na iyan. 147 00:08:15,190 --> 00:08:16,880 Iyan ay 3. 148 00:08:16,880 --> 00:08:20,180 Ibig sabihin ko panatilihin ang paggawa nito muli, mayroon kami dito 9. 149 00:08:20,180 --> 00:08:23,850 At pagkatapos ay 11, ngunit iyan ay b, pagpapabalik. 150 00:08:23,850 --> 00:08:30,570 2, 10-- o a-- 6, at 4. 151 00:08:30,570 --> 00:08:34,669 At upang ang napakalaking string ng 0 at 1 ng tuktok 152 00:08:34,669 --> 00:08:38,549 ay mas maigsi ipinahayag sa hexadecimal bilang 0x 46a2b93d. 153 00:08:38,549 --> 00:08:42,309 154 00:08:42,309 --> 00:08:45,870 >> Well, OK, aming natutunan ng isang bagong cool na kasanayan, kung ano ang punto? 155 00:08:45,870 --> 00:08:49,560 Maaaring hindi namin gamitin ito sa lahat ng panahon, bilang namin ang pagpunta sa lalong madaling panahon makita, 156 00:08:49,560 --> 00:08:52,370 ginagamit namin hexadecimal lubos isang pulutong ng mga programmer. 157 00:08:52,370 --> 00:08:55,060 Hindi kinakailangan para sa layunin ng paggawa ng matematika sa mga ito, 158 00:08:55,060 --> 00:08:58,470 ngunit dahil ang isang pulutong ng mga oras memory address sa aming sistema 159 00:08:58,470 --> 00:09:00,440 ay kinakatawan sa hexadecimal. 160 00:09:00,440 --> 00:09:04,390 Ito ay isang talagang maigsi na paraan upang ipahayag ang sa kabilang banda nakakabahala, binary numero. 161 00:09:04,390 --> 00:09:06,440 At ito, muli, ikaw ay maaaring not-- ikaw ay malamang na 162 00:09:06,440 --> 00:09:07,640 hindi pagpunta sa gawin ang anumang matematika sa mga ito, kayo ay hindi 163 00:09:07,640 --> 00:09:09,848 magiging pagpaparami hexadecimal numero ng magkasama, 164 00:09:09,848 --> 00:09:11,770 o paggawa ng anumang bagay na kakaiba tulad na. 165 00:09:11,770 --> 00:09:16,120 Ngunit ito ay isang kapaki-pakinabang na kasanayan upang magkaroon sa gayon maaari mong ipahayag at maunawaan 166 00:09:16,120 --> 00:09:23,290 memory address, at iba pang mga paraan ng paggamit ng data sa C. 167 00:09:23,290 --> 00:09:26,240 >> Ako Doug Lloyd, ito ay CS50. 168 00:09:26,240 --> 00:09:28,028