Doug LLYOYD: Torej šestnajstiška številke, kot če smo potrebovali še eno osnovno številko
Shema kajne?
No, večina zahodnih kultur, kot ste verjetno seznanjeni,
uporabite decimalno system-- osnove 10, da predstavljajo številske podatke.
Imamo števke 0, 1, 2, 3, 5, 6, 7,8,9.
In če bomo potrebovali za zastopanje vrednosti višji od devetih
bomo lahko združujejo tiste cifre uporabo pojma mesto vrednosti.
Torej, za 10, imamo 1 mestna sledi 0 cifro
in smo intuitivno razumeti da to, kar delamo
se bomo množenjem prva 1 z 10,
in nato dodal, 0 za skupno 10.
Računalniki narediti nekaj lepega Podobno, kot ste verjetno seznanjeni,
z binarno system-- osnove 2.
Razlika da bi bilo da obstajajo samo 2 števki
delati with-- 0 in 1.
In tako nas vrednote, namesto da bi bili eno,
deset, sto tisoč, saj bi bila v decimalni sistem,
ena, dve, štiri, osem, in tako naprej.
Tukaj je stvar, čeprav, ti 0-ih in 1, zlasti
če smo pa računalniške znanstvenike in delamo veliko programiranja
ali delajo z računalniki, grejo se vidi veliko binarnih števil.
In tiste 0 in 1 je v velikih verigah lahko zelo težko razčleniti.
Ne moremo samo pogled na niz 0 in 1 in nujno vedeti
točno to, kar je.
Ampak to je še vedno koristno, da bi lahko ekspresne podatkov na enak način
da računalniški ne.
Imamo ta pojem od šestnajstiški sistem, ki je
osnova 16, namesto navadnih 10 ali bazne 2.
Kar pomeni, da imamo 16 cifer delati namesto 10 ali 2.
In to je veliko bolj jedrnat način za izražanje
binarnih informacij v računalniškem sistemu, to je veliko bolj človeško razumljivo.
Torej imamo števke 0 do 9 in nato
imamo tudi teh dodatnih šest digits-- a, b, c, d, e, in f, ki predstavljajo 10,
naš pojem 10, 11, 12, 13, 14 in 15, v decimalni.
Včasih, mimogrede, boste tudi vi vidim te a do f kot kapitalski A
s F, ki je Tako sem se nagibajo, da to storite.
To je samo moja prednost slog, vendar bodisi je v redu,
sta oba predstavljata precej veliko isto stvar.
>> Torej, zakaj je šestnajstiški kul?
Zakaj moramo uporabiti to druge dodatne osnove?
Imamo že 2 in 10, zakaj potrebujemo 16?
No 16 je moč 2, in tako vsak šestnajstiški mestna, 0 do f,
ustreza edinstven naročanje, ali edinstvena ureditev
4 binarnih znakov, 4 bitov.
In tako v tem smislu, lahko izražamo zelo dolge, zapletene, binarne številke
v šestnajstiškem enkrat v veliko bolj jedrnat način,
brez izgube informacij ali da bi storiti predvsem okorne pretvorb
na te številke.
>> Torej, kot sem rekel, vsak šestnajstiški mestna
ustreza edinstven Razporeditev 4 binarnih številk.
Torej binarni niz 0000 ustreza šestnajstiško števko 0.
0110 ustreza šestnajstiško števko 6.
In 1111 ustreza da šestnajstiškem mestno f.
Če iščete na ta grafikon, zlasti
če si pogledamo levi strani grafikona,
že lahko vidite, da je košček od problema dvoumnosti tukaj.
Decimalno 0 je precej ne razlikuje od šestnajstiško 0,
razen dejstva, da je pod stolpec, ki pravi, šestnajstiški.
>> Ampak mi verjetno ne bo vedno imajo ta stolpec tam.
Na splošno, ko smo se izražajo številke v šestnajstiškem zapisu
jasno razlikovati jim od decimalni zapis,
smo jih navadno predpona s predpono 0x.
0x ne pomeni nič, v resnici, to je samo namig, da nas kot ljudi
da to, kar smo, da vidijo, ali nameravate začeti razčlenjevanje,
je šestnajstiško število.
Očitno je za višje številki a, b, c, d in f, kar ustreza 10-15
to je precej nedvoumno, da je da je šestnajstiško število.
In v resnici, vsaka šestnajstiški številka, ki ima črke v njej,
je verjetno precej očitno kot šestnajstiško število.
Ampak, še vedno, za Zaradi jasnosti je
vedno dobra ideja, da predpono vsakič, ko
nanašajo na številko kot šestnajstiško številka, ki jo prefixing z 0x.
>> Torej, binarna, kot smo je dejal, ima krajevna vrednosti.
Tam je tisti kraj, A dvojke mesto, štiric kraj, in osmice mesto.
In decimalno ima tudi krajevna vrednote, na tisti, na desetine, na stotine in tisoče
da smo vsi lahko odpokliče iz osnovne šole.
In šestnajstiški ni Izjema tukaj, res.
Prav tako ima krajevna vrednosti Toda namesto , da so pristojnosti 2 ali pristojnosti 10,
oni pooblastil 16.
>> Tako smo videli nekaj podobnega tem smo precej jasno vedeti, da je 397, kajne?
No, če smo videli več, kot je ta, vemo, da to ni 397 več.
To je šestnajstiški številka tri-9-7.
To ni 397, to pomeni, nekaj drugega,
ker smo s pomočjo pooblastila 16. Kot vse naših krajev vrednot namesto pooblastil
10.
V bistvu, tukaj bi se place vrednosti je tisti kraj, je sixteens mesto,
in dvesto petdeset šestic mesto, ki ustrezajo naši ideji o tistih
kraj, deset kraj in a stotine zanimivi, če je bilo število 397.
Ampak, saj to je 0x 397, imamo posameznikova mesto, sixteens mesto,
in dvesto petdeset šestic mesto.
Ali pri 16 do 0 mestu, ki je 1.
A 16 do prve močnostne mestu, 16.
A 16 kvadrati mesto, 256, in tako naprej, in tako naprej, in tako naprej.
Torej je ta številka res 3-krat 16 kvadrat, plus 9 krat 16 plus 7.
Nisem naredil matematike tukaj, ampak to ni 397, je še veliko, veliko večji od tega.
>> Podobno lahko imamo 0x ADC, dobro, da je čas 16 kvadrat.
Ali pa, če smo prevedli, da naši pojma od decimalnih števil, ki je 10-krat
16 kvadrat, plus d krat 16 ali plus 13 krat 16.
In ne skrbite, če niste zapomnili da d je 13, ali kaj podobnega,
tam ni preveč teh črkovnih znakov
in bomo postali intuitivno precej hitro.
Torej, še enkrat to je 10 krat 16 kvadrati, plus 13 krat 16 plus 12 krat 1.
Torej 0x ADC.
>> Torej, kot sem rekel, vsak skupina 4 binarnih števk
ustreza enojna šestnajstiški mestna,
in zato je dejansko res enostavno spremeniti in nazaj
med hex in binarni.
Če imate ta dolg niz binarne številke, vse, kar morate storiti
se začnejo jih združi desno levo kot skupine 4.
In potem si lahko utrdi jim v številkah estnajstikih,
strogo omejevanje števila cifer moraš mentalno obdelati.
Namesto, da bi 32 0 in 1 je, kot bomo videli v drugem,
boste morda lahko, da ga dol za samo 8 šestnajstiških števk, veliko
bolj jedrnato.
>> Grafi nekaj diapozitivov na hrbtni strani vam pomaga, da ugotovimo, to kartiranje,
čeprav, spet boste zapomniti precej hitro.
Šli bomo skozi primer prav zdaj.
Torej, če imamo več, kot je ta, to je res velika binarno število,
ali kaj se zdi, da velika binarno število.
In razlog, zakaj sem rekel, da je to Samo SO- je Behemoth, kajne?
Obstaja toliko 0-ih in 1 je tam.
Ampak mi verjetno ne res imeti občutek, kaj
velikost te številke res.
Nimamo pojma, kaj jo bi ustrezalo decimalko.
In v resnici ne bomo niti videli, kaj je ustreza v decimalko zdaj.
Mi morda lahko izražajo to na način, ki
bi nam dal nekaj več informacij o tem, kako velik je ta številka.
>> Torej, pojdimo k temu procesu konverzije.
Prva stvar, ki jo potrebujemo storiti je, da želimo, da se skupini
Te številke ven v skupinah od 4, ki se začne z desne
in delajo v levo.
Tam se zgodi, da bo 32 cifer tukaj, kar pomeni, da moramo
lepo čisto odmor 8 skupin po 4.
Ne pozabite, da vsako skupino 4 tukaj, nedvomno ustreza
za šestnajstiško števko.
Torej bomo spet Gradimo našo številka z desne in delovni levo.
No, kaj je 1101?
Dobro delamo math v naši glavi, imamo 1 v osmice prostoru, se 1
v mestu štirih, 0 v parih mesto, in 1 v tisti mestu.
To je 8 plus 4 plus 1, ki bi poznamo kot 13.
Vendar pa verjetno ne bi pisal 13, ker delamo s šestnajstiško.
Ga moramo pretvoriti v šestnajstiški ekvivalent 13, ki je d.
>> 0011, ter da je 0 v osmice mesto, v 0 v štirih mestu,
A 1 v parih mestu in 1 v tisti mestu.
To je 3.
Mislim, da delaš to spet imamo tu 9.
In potem 11, ampak to je b, odpoklic.
2, 10-- ali a-- 6 in 4.
In tako, da zelo velika niz od 0 in 1-ih na vrh
je bolj jedrnato izrazil v šestnajstiškem kot 0x 46a2b93d.
>> No, v redu, smo se naučili novo kul spretnost, kaj je smisel?
Mogoče ne bomo uporabili to vse čas, saj bomo kmalu videli,
bomo uporabili šestnajstiški precej Veliko kot programerjev.
Ni nujno, da za Namen delaš math z njim,
ampak zato, ker veliko krat pomnilniške naslove v našem sistemu
so zastopani v šestnajstiškem.
To je res jedrnat način za izražanje sicer okorni, binarne številke.
In tako, spet, lahko vam not-- ste verjetno
ne bo naredil nobene matematike z njim, niste
bo množenjem šestnajstiška številke skupaj,
ali počel kaj čudnega, kot je ta.
Vendar je koristno spretnost imeti tako da lahko izražajo in razumeti
spomin naslove in druge načini uporabe podatkov v C.
>> Sem Doug Lloyd, to je CS50.