DOUG LLYOYD: numrat hexadecimal Pra, sikur kishim nevojë për një numër tjetër bazë
drejtë skemë?
E pra, shumica e kulturave perëndimore, si ju ndoshta jeni të njohur,
përdorin bazën decimal system-- 10, për të përfaqësuar të dhënat numerike.
Ne kemi shifra 0, 1, 2, 3, 5, 6, 7,8,9.
Dhe në qoftë se ne kemi nevojë për të përfaqësuar vlerat më të larta se nëntë,
ne mund të kombinohen këto shifra duke përdorur nocionin e vlerës vend.
Pra, për 10, ne kemi një 1 shifra e ndjekur nga një numër 0
dhe ne e kuptojmë intuitive se çfarë jemi duke bërë
ekziston ne jemi shumëzuar parë 1 nga 10,
dhe pastaj duke shtuar 0 për një total prej 10.
Kompjutera të bëjë diçka të bukur ngjashme, si ju ndoshta jeni njohur,
me bazë binar system-- 2.
Dallimi ka qenë se ka vetëm 2 shifra
për të punuar with-- 0 dhe 1.
Dhe kështu vlerat tona vend, në vend të qenë një,
dhjetë, njëqind, mijë, pasi ata do të jetë në sistemin dhjetore,
janë një, dy, katër, tetë, etj.
Këtu është gjë edhe pse, ata 0 dhe 1, veçanërisht
në qoftë se ne jemi duke u shkencëtarë kompjuter dhe ne jemi duke bërë një shumë të programimit
ose duke punuar me kompjuterat, ishin duke shkuar që të shohim një shumë të numrave binar.
Dhe ato të 0 dhe 1-së në zinxhirët e mëdha mund të jetë shumë e vështirë të kuptoj.
Ne nuk mund vetëm të shikoni në një varg të 0 dhe 1 dhe domosdoshmërisht e di
pikërisht ajo që është.
Por është ende e dobishme të jetë në gjendje të dhënat e shprehin në të njëjtën mënyrë
se një kompjuter ka.
Ne kemi këtë nocion të Sistemi hexadecimal, i cili është
bazë 16, në vend të 10 bazë ose baza 2.
Që do të thotë se ne kemi 16 shifra për të punuar me vend të 10 ose 2.
Dhe kjo është një shumë më të mënyrë koncize të shprehur
informacion binar në një sistem kompjuterik, kjo është shumë më njerëzore të kuptueshme.
Kështu që ne kemi shifra 0 deri ne 9, dhe pastaj
ne gjithashtu kemi këto ekstra gjashtë digits-- një, b, c, d, e, dhe f, të cilat paraqesin 10,
nocioni ynë i 10, 11, 12, 13, 14 dhe 15, në të dhjetore.
Ndonjëherë, nga rruga, ju do të të shihni këto një pasim F si kryeqytet A
me F, i cili është mënyrë unë kanë tendencë për të bërë atë.
Ajo është vetëm e preferuar e mia stil, por as është e mirë,
ata të dy përfaqësojnë goxha shumë të njëjtën gjë.
>> Pra, pse është e ftohtë heksadecimal?
Pse nuk kemi nevojë për të përdorur këtë baza e të tjera shtesë?
Ne tashmë kemi 2 dhe 10, pse nuk kemi nevojë për 16?
E pra 16 është një fuqi e 2, dhe kështu Çdo shifër heksadecimal, 0 deri f,
korrespondon me një unike urdhërimin, apo rregullim unik
e 4 shifra binare, 4 bit.
Dhe kështu në këtë kuptim, ne mund të shprehim shumë të gjatë, komplekse, numrat binare
në heksadecimal në një shumë mënyrë më koncize,
pa humbur informacion ose ka për të bërë conversions veçanërisht të vështira
në ato numra.
>> Pra, si unë vetëm i tha, çdo shifër heksadecimal
korrespondon me një unike marrëveshje e 4 shifra binare.
Pra, string binar 0000 korrespondon me shifrën 0 heksadecimal.
0110 korrespondon me numër heksadecimal 6.
Dhe 1111 korrespondon në heksadecimal shifror f.
Nëse ju jeni duke kërkuar në kjo tabelë, veçanërisht
në qoftë se ju jeni duke kërkuar në anën e majtë të grafikut,
ju tashmë mund të shihni se ka një pak e një problemi paqartësi këtu.
Decimal 0 është shumë e shumë padallueshëm nga heksadecimal 0,
përveç faktit se ai është nën një kolonë që thotë se hexadecimal.
>> Por ne ndoshta nuk do të gjithmonë kanë atë kolonë atje.
Në përgjithësi kur ne jemi shprehur Numrat në simbol heksadecimal
për të dalluar në mënyrë të qartë ata nga shënim dhjetore,
ne zakonisht prefiksin e tyre me prefiksin 0x.
0x do të thotë asgjë në realitet, kjo është vetëm një e dhënë për ne si njerëz
se ajo që ne jemi gati për të parë, apo gati për të filluar analizë gramatikore,
është një numër hexadecimal.
Natyrisht për shifra më të larta A, B, c, d, dhe f, të cilat korrespondojnë me 10-15
kjo është goxha e qartë se kjo është kjo është një numër heksadecimal.
Dhe në fakt, çdo heksadecimal numër që ka letra në të,
është ndoshta shumë e qartë si një numër heksadecimal.
Por, ende, për hir të qartësisë, është
gjithmonë një ide e mirë për të prefiksin çdo herë që
i referohen një shifër si një heksadecimal Numri i nga prefixing një 0x.
>> Pra, binar, si ne tha, ka vlera vend.
Ka vend ato, një vend twos, një vend i katër këmbët, dhe një vend Eights.
Dhe decimal gjithashtu ka vendin e vlera, e ato të, dhjetëra, qindra, dhe mijëra
që ne të gjithë mund të kujtojmë nga klasën e shkollës.
Dhe heksadecimal ka asnjë Përjashtim këtu, me të vërtetë.
Ajo gjithashtu ka vend vlerat por në vend për të qenë kompetencave të 2 ose fuqive të 10,
ata janë kompetencat e 16.
>> Pra, ne shohim një numër si ky ne mjaft të qartë e di se është 397, e drejtë?
E pra në qoftë se ne shohim një numër si ky, ne e dimë se kjo nuk është 397 më.
Kjo është hexadecimal numri tre e nëntë e shtatë.
Kjo nuk është 397, kjo do të thotë dicka ndryshe,
sepse ne jemi duke përdorur pushtetin e 16, si të gjithë në vendin e vlerave tona në vend të pushteteve
e 10.
Në fakt, vendi vlerat këtu do të jetë vendi ato, vendi sixteens,
dhe vendi dyqind-pesëdhjetë sixes, të cilat korrespondojnë me idenë tonë të një të atyre
vend, dhjetëra vend, dhe një qindra vend, në qoftë se numri ishte 397.
Por që nga ajo e 0x 397, ne kemi një Ones vend vend, sixteens,
dhe një vend dyqind-pesëdhjetë sixes.
Ose një 16 në vendin 0, e cila është 1.
Një 16 në vendin e parë të energjisë, 16.
Një 16 katror vend, 256, dhe kështu me radhë, dhe kështu me radhë, dhe kështu me radhë.
Pra, ky numër është me të vërtetë 3 herë 16 katror, ​​plus 9 herë 16, plus 7.
Unë nuk e ka bërë matematikë këtu, por kjo nuk është 397, kjo është shumë, shumë më i madh se kaq.
>> Në mënyrë të ngjashme, ne mund të kemi ADC 0x, edhe kjo është një herë 16 katror.
Ose në qoftë se ne të përkthehet se për nocionin tonë e numrave dhjetore, kjo është 10 herë
16 katror, ​​plus d herë 16, ose 13 plus 16 here.
Dhe mos u shqetësoni nëse ju nuk e keni memorizuar se d është 13, ose diçka të tillë,
nuk është shumë e shumë e këtyre shifrave letër
dhe ajo do të bëhet intuitive shumë shpejt.
Pra, përsëri kjo është 10 herë 16 katror, plus 13 herë 16 plus 12 herë 1.
ADC kështu 0x.
>> Pra, siç thashë, çdo grup prej 4 shifra binare
korrespondon me një të vetme shifror heksadecimal,
dhe kështu që është e vërtetë me të vërtetë lehtë për të ndryshuar mbrapa dhe me radhë
midis magji dhe binar.
Në qoftë se ju e keni këtë varg të gjatë të shifra binare, të gjithë ju duhet të bëni
është të fillojë grupuar ato të drejtë për të lënë si grupe prej 4.
Dhe pastaj ju mund të konsoliduar ata në numra heksadecimal,
kufizimin rëndë numrin e shifrat që ju keni për të procesit mendërisht.
Në vend të 32 0 dhe 1-së, si ne do të shohim në një të dytë,
ju mund të jetë në gjendje për të marrë atë poshtë në vetëm 8 shifra hexadecimal, shumë
më konciz.
>> Listat disa slides pak mbrapa do të të ju ndihmojë të kuptoj se këtë hartës,
edhe pse, përsëri ju do të mësuar përmendësh atë shumë shpejt.
Ne do të kalojnë nëpër një shembull të drejtë tani.
Pra, nëse ne kemi një numër si ky, ky numër me të vërtetë i madh binar,
apo atë që duket të jetë një numër i madh binar.
Dhe arsyeja unë them se, kjo është vetëm so-- kjo është një monstër, e drejtë?
Ka kaq shumë 0 dhe 1 është atje.
Por ne ndoshta nuk e bëjmë me të vërtetë kanë një kuptim të asaj
madhësia e këtij numri është me të vërtetë.
Ne nuk kemi asnjë ide se çfarë ajo do të korrespondojnë me një decimal të.
Dhe në fakt ne nuk do të shohim edhe atë që korrespondon në decimal të drejtë tani.
Ne mund të jetë në gjendje të shprehur këtë në një mënyrë që
do të na japin një informacion më shumë në lidhje me se sa i madh ky numër është.
>> Pra, le të shkojë në atë procesit të konvertimit.
Gjëja e parë që ne kemi nevojë të bëni është që ne duam të grupit
këto shifra jashtë në grupe i 4, duke filluar nga e drejta
dhe duke punuar në të majtë.
Nuk ndodh që të jetë 32 shifra këtu, që do të thotë ne kemi
një pushim të bukur të pastër nga 8 grupe me nga 4.
Mos harroni se çdo grup 4 këtu, unike korrespondon
në një numër heksadecimal.
Pra, ne do të fillojnë përsëri ndërtimin tonë numrin nga e djathta dhe Punën e la.
E pra çfarë është 1101?
E pra të bëjmë matematikë në kokën tonë, kemi 1 në vendin e tetë, një 1
në vend të katër këmbët, një 0 në twos vend, dhe një 1 në vend ato.
Kjo është 8 plus 4 plus 1, të cilat ne do të dimë si 13.
Por ne ndoshta nuk do të shkruaj 13 nga, sepse ne jemi duke punuar me heksadecimal.
Ne kemi nevojë për të kthyer atë në heksadecimal ekuivalente e 13, e cila është e d.
>> 0011, edhe kjo është një 0 në vend Eights, një 0 në katër këmbët vend,
një 1 në vend twos, dhe a 1 në vendin ato.
Kjo është 3.
Unë do të thotë të vazhdojmë të bëjmë këtë përsëri, ne kemi këtu 9.
Dhe pastaj 11, por kjo është b, kujtojnë.
2, 10-- a-- ose 6, dhe 4.
Dhe kështu që varg shumë i madh të 0 dhe 1-ta të lartë
është e shprehur më shumë në mënyrë koncize në heksadecimal si 0x 46a2b93d.
>> E pra, në rregull, ne kemi mësuar një të ri aftësi ftohtë, çfarë është pika?
Ne nuk mund të përdorin këtë të gjithë kohë, si ne jemi duke shkuar për të parë së shpejti,
ne përdorim hexadecimal mjaft shumë si programuesit.
Jo domosdoshmërisht për Qëllimi i bërë matematikë me të,
por për shkak se shumë herë adresat e kujtesës në sistemin tonë
janë të përfaqësuara në heksadecimal.
Kjo është një mënyrë të vërtetë konciz për të shprehur ndryshe ngarkuara, numra binar.
Dhe kështu, përsëri, ju mund të not-- ju jeni me siguri
nuk do të bëni asnjë matematikë me atë, ju nuk jeni
do të jetë shumëzuar numrat hexadecimal së bashku,
apo bërë ndonjë gjë të çuditshme si kjo.
Por kjo është një aftësi e dobishme që të ketë kështu që ju mund të shprehin dhe të kuptojnë
kujtesës adresat, dhe të tjera Mënyra e përdorimit të të dhënave në C.
>> Unë jam Doug Lloyd, kjo është CS50.