Doug LLYOYD: Tātad heksadecimālo skaitļu, it kā mums vajadzēja vēl bāziskums
shēma labi?
Nu, lielākā daļa Rietumu kultūru, kā jūs, iespējams, ir pazīstami,
izmantot decimāldaļu system-- bāzi 10, lai pārstāvētu skaitliskos datus.
Mums ir cipari 0, 1, 2, 3, 5, 6, 7,8,9.
Un, ja mums ir nepieciešams, lai pārstāvētu vērtības lielāks nekā deviņi,
mēs varam apvienot šos ciparus izmantojot jēdzienu vietas vērtību.
Tātad 10, mums ir 1 cipars seko 0 ciparu
un mēs intuitīvi saprotam ka tas, ko mēs darām
tur ir, mēs esam reizinot pirmais 1 līdz 10,
un pēc tam pievienojot 0, kopā 10.
Datori darīt kaut ko diezgan līdzīgi, kā jūs, iespējams, iepazinies,
ar bināro system-- bāzi 2.
Atšķirība tur ir ka ir tikai 2 cipari
strādāt with-- 0 un 1.
Un tā mūsu vietā vērtības, tā vietā ir viens,
desmit, simts, tūkstoši, jo tie varētu būt aiz sistēmu,
ir viens, divi, četri, astoņi, un tā tālāk.
Šeit ir lieta, lai gan, šie 0 un 1 s, jo īpaši
ja mēs to datorzinātnieku un mēs darām daudz programmēšanas
vai strādā ar datoru, gāja kas redzēt daudz bināro skaitļu.
Un tie, 0 un 1 ir lielās ķēdēs var būt ļoti grūti apstrādāt.
Mēs varam ne tikai apskatīt virkni 0 un 1 s un vienmēr zināt
tieši to, kas tas ir.
Bet tas vēl aizvien ir lietderīgi, lai varētu express dati tādā pašā veidā,
ka dators dara.
Mums ir šo jēdzienu no heksadecimālo sistēma, kas ir
bāze 16, tā vietā, lai bāzes 10. vai bāzes 2.
Kas nozīmē, ka mums ir 16 cipariem strādāt ar, nevis 10 vai 2.
Un tas ir daudz vairāk kodolīgs veids, kā izteikt
binārā informācija par datorsistēmā, tas ir daudz vairāk cilvēku saprotams.
Tāpēc mums ir cipari No 0 līdz 9, un pēc tam
mums ir arī šīs papildus seši digits-- ir, b, c, d, e, f, kas atbilst 10,
mūsu jēdziens no 10., 11., 12., 13, 14 un 15, jo aiz komata.
Dažreiz, starp citu, jūs arī redzēt šos A līdz F ir tik kapitāla A
ar F, kas ir veids, kā es mēdz darīt.
Tas ir tikai mans vēlamais stils, bet nu ir labi,
viņi abi pārstāv diezgan daudz pats.
>> Tātad, kāpēc ir heksadecimālo forši?
Kāpēc mums ir nepieciešams, lai izmantotu šo citi papildu bāze?
Mums jau ir 2 un 10, kāpēc mums vajag 16?
Nu 16 ir jauda 2, un tā katru heksadecimālo ciparu, 0 līdz F,
atbilst unikāls pasūtīšana, vai unikāls veidojums
4 bināro cipari, 4 biti.
Un tā šajā ziņā, mēs varam izteikt ļoti garš, sarežģīts bināro numuri
heksadecimālā kādā uzņēmumā daudz vairāk kodolīgi veidā,
nezaudējot informāciju vai kam do it īpaši apgrūtinošas konvertēšanu
uz šiem numuriem.
>> Tātad, kā es tikko teicu, katru heksadecimālo ciparu
atbilst unikāls izkārtojums 4 bināro cipariem.
Tātad bināro virkni 0000 atbilst heksadecimālo ciparu 0.
0110 atbilst heksadecimālo ciparu 6.
Un 1111 Atbilst uz heksadecimālo ciparu f.
Ja jūs meklējat pie Šī diagramma, īpaši
ja jūs meklējat pie kreisā puse no diagrammas,
Jūs jau varat redzēt tur ir mazliet neskaidrību problēmu šeit.
Decimal 0 ir diezgan daudz neatšķiras no heksadecimālo 0,
izņemot to, ka tas ir saskaņā kolonna, kas saka heksadecimālo.
>> Bet mēs, iespējams, ne vienmēr ir, ka kolonna tur.
Parasti, kad mēs izsakot numurus heksadecimālā notācija
skaidri atšķirt viņiem no decimālā notācija,
mēs parasti prefiksu tos ar prefiksu 0x.
0x ir nekas patiesībā, tas ir tikai pavediens mums kā cilvēkiem
ka tas, ko mēs esam par to, lai redzētu, vai gatavojaties uzsākt parsēšana,
ir heksadecimālo numuru.
Acīmredzot par augstākās cipariem a, b, c, d, un f, kas atbilst 10-15
tas ir diezgan nepārprotams tas tas ir heksadecimālo numuru.
Un patiesībā, jebkurš heksadecimālo numurs, kas ir burti tajā,
ir iespējams, ir diezgan skaidrs kā heksadecimālo numuru.
Bet, tomēr, lai Skaidrības labad, tas ir
vienmēr ir laba ideja, lai prefiksu katru reizi, kad
atsaukties uz ciparu kā heksadecimālo numurs, ko prefixing ar 0x.
>> Tātad, bināro, kā mēs teica, ir vietu vērtības.
Tur ir tie, vietu A twos vieta, Fours vietu, un astotnieki vietu.
Un decimālo arī vietu vērtībām, tiem, desmitiem, simtiem, un tūkstošiem
ka mēs visi varētu atcerēties no pakāpē skolā.
Un heksadecimālo nav izņēmums šeit, tiešām.
Tas arī ir vietu vērtības, bet tā vietā būt no 2 pilnvaru vai pilnvaras 10,
viņi pilnvaras 16.
>> Tātad mēs redzam virkni, piemēram, šo mēs diezgan skaidri zinu, tas ir 397, vai ne?
Nu, ja mēs redzam virkni, piemēram, tas, mēs zinām, ka tas nav 397 vairs.
Tas ir heksadecimālo numur trīs deviņu septiņi.
Tas nav 397, tas nozīmē, kaut kas atšķirīgs,
tāpēc, ka mēs esam izmantojot pilnvaras, kā 16. visu Mūsu vieta vērtībām, nevis pilnvaras
10.
Faktiski, tā ir vieta vērtības šeit būtu tie, vieta, tad sixteens vieta,
un divi simti piecdesmit sixes vietu, kas atbilst mūsu ideju par tiem
Vieta, desmitiem vietu, un a simtiem vieta, ja skaits bija 397.
Bet, tā kā tas ir 0x 397, mums ir Ones vieta, sixteens vieta,
un divu simti piecdesmit sixes vietu.
Vai, 16 līdz 0 vietu, kas ir 1.
A 16 uz pirmo strāvas vietā, 16.
A 16 brusas vietu, 256, un tā tālāk, un tā tālāk, un tā tālāk.
Tātad šis skaitlis ir tiešām 3 reizes 16 brusas, plus 9 reizes 16, plus 7.
Es to nedarīju math šeit, bet tas nav 397, tas ir daudz, daudz lielāks nekā.
>> Tāpat mēs varētu būt 0x ADC, labi, ka ir reizes 16 brusas.
Vai, ja mēs tulkojam ka mūsu jēdzienu no aiz skaitļiem, kas ir 10 reizes
16 brusas, plus d reizes 16 vai plus 13 reizes 16.
Un neuztraucieties, ja jūs neesat iegaumējis ka d ir 13, vai kaut kā tā,
tur nav pārāk daudz Šo burtu ciparu
un tas būs kļuvis intuitīvi diezgan ātri.
Tātad atkal tas ir 10 reizes 16 brusas, plus 13 reizes 16, plus 12 reizes 1.
Tātad 0x ADC.
>> Tātad, kā jau teicu, katrs grupa 4 bināro cipari
atbilst viens heksadecimālo ciparu,
un tāpēc tas ir tiešām ļoti viegli mainīt uz priekšu un atpakaļ
starp hex un bināro.
Ja jums ir šī ilgi virkni bināro cipari, viss, kas jums jādara,
ir sākt grupējot tos pa labi pa kreisi kā grupas 4.
Un tad jūs varat konsolidēt tos heksadecimālo skaitļu,
stingri skaita ierobežošana Cipari jums apstrādāt garīgi.
Tā vietā, lai 32 0 un 1 s, kā mēs redzēsim sekundē,
Jums varētu būt iespēja saņemt to uz leju lai tikai 8 heksadecimālo ciparu, daudz
vairāk kodolīgi.
>> Diagrammas daži slaidi mugura palīdzēs jums, lai noskaidrotu šo kartēšanu,
lai gan, atkal jūs iegaumēt to diezgan ātri.
Mēs iet caur piemēru tieši tagad.
Tātad, ja mums ir vairāki, piemēram, tas, tas tiešām liels bināro numuru,
vai ko, šķiet, ir liels bināro numuru.
Un iemesls, kāpēc es saku, ka tas ir tikai so-- tas ir behemoth, vai ne?
Tur ir tik daudz 0 un 1 ir tur.
Bet mēs, iespējams, nav tiešām ir sajūta, ko
lielums šī skaita patiešām ir.
Mums nav nekādu ideju, ko tā atbilstu zīmei aiz komata.
Un patiesībā mēs pat redzēt to, ko tā atbilst decimālā tieši tagad.
Mēs varētu izteikt to tādā veidā, ka
dotu mums vairāk informācijas par to, cik liels šis skaitlis ir.
>> So iesim uz šo pārveides procesu.
Pirmā lieta, kas mums to darīt, ir, mēs vēlamies, lai grupai
šie cipari ārā grupās 4., sākot no labās puses
un strādā pa kreisi.
Tur gadās būt 32 cipariem šeit, kas nozīmē, ka mums ir
jauka tīru pārtraukums 8 grupās pa 4.
Atcerieties, ka katras grupas 4 šeit, unikāli Atbilst
uz heksadecimālo ciparu.
Tāpēc mēs sāksim atkal veidošanu skaitlis no labās un darbu atstāja.
Nu, kas ir 1101?
Nu mēs math no mūsu galvā, mums ir 1, kas eights vietā, 1
šajā četrrāpus vietā, 0, kas pa pāriem vieta, un 1 no tiem, vietā.
Tas ir 8 plus 4 plus 1, kas mēs zinātu, kā 13.
Bet mēs, iespējams, nebūtu rakstīt 13 out, jo mēs strādājam ar heksadecimālo.
Mums ir nepieciešams, lai pārvērstu to uz heksadecimālo ekvivalents 13, kas ir d.
>> 0011, labi, ka ir 0 In astotnieki vieta, 0, četrrāpus vietā,
1, kas pa pāriem vietā, un 1 ones vietā.
Tas ir 3.
Es domāju paturēt to izdarīt atkal, mēs esam šeit 9.
Un tad 11, bet tas ir b, atgādināt.
2, 10-- vai a-- 6, un 4.
Un tā, ka ļoti liela string no 0 un 1 ir no augšas
ir vairāk lakoniski izteikta heksadecimālā kā 0x 46a2b93d.
>> Nu, OK, mēs esam iemācījušies jaunu cool prasme, kāda jēga?
Mēs varētu neizmantot šo visu laiks, jo mēs ejam, lai drīz redzēt,
mēs izmantojam heksadecimālo diezgan daudz kā programmētāji.
Ne vienmēr par nolūks darīt math ar to,
bet tāpēc, ka daudz reižu atmiņas adreses mūsu sistēmā
ir pārstāvētas heksadecimālo.
Tas ir patiešām kodolīgs veids, kā izteikt citādi apgrūtinoša, bināro numuri.
Un tā, atkal, jūs varat not-- jūs droši vien
nav gatavojas darīt jebkuru math Ar to, jūs neesat
būs reizinot heksadecimālo skaitļu kopā,
vai darīt kaut ko dīvainu, piemēram, ka.
Bet tas ir noderīgs prasme ir lai jūs varētu izteikt un saprast
atmiņas adreses, un citi izmantošanas veidi dati C.
>> Es esmu Doug Lloyd, tas ir CS50.