DOUG LLYOYD: rhifau Felly hecsadegol, fel pe baem angen nifer sylfaenol arall
Cynllun iawn?
Wel, y rhan fwyaf o ddiwylliannau Gorllewinol, fel y mae'n debyg y byddwch yn gyfarwydd,
defnyddio'r sylfaen system, degol 10, i gynrychioli data rhifol.
Mae gennym y digidau 0, 1, 2, 3, 5, 6, 7,8,9.
Ac os bydd angen i gynrychioli gwerthoedd yn uwch na naw,
gallwn gyfuno digidau rhai gan ddefnyddio'r syniad o werth lle.
Felly, ar gyfer 10, mae gennym 1 digid ddilyn gan 0 digid
ac yr ydym yn reddfol yn deall bod yr hyn yr ydym yn ei wneud
mae ein bod yn lluosi y cyntaf 1 o 10,
ac yna ychwanegu 0 ar gyfer cyfanswm o 10.
Cyfrifiaduron gwneud rhywbeth 'n bert debyg, fel y mae'n debyg eich bod yn gyfarwydd,
gyda'r sylfaen system, deuaidd 2.
Y gwahaniaeth nad oes mai dim ond 2 ddigid
i weithio with-- 0 ac 1.
Ac felly mae ein gwerthoedd ar waith, yn hytrach na bod yn un,
deg, cant, mil, gan eu bod yn fyddai yn y system degol,
yn un, dau, pedwar, wyth, ac yn y blaen.
Dyma y peth, fodd bynnag, 0 ac 1 yn y rhai, yn enwedig
os ydym yn cael gwyddonwyr cyfrifiadurol ac rydym yn gwneud llawer o raglenni
neu weithio gyda chyfrifiaduron, yn mynd i gael ei gweld llawer o rifau deuaidd.
A'r rhai ar 0 a 1 mewn cadwyni mawr Gall fod yn anodd iawn i'w dosrannu.
Ni allwn dim ond yn edrych ar gyfres o 0 ac 1, ac yn gwybod o reidrwydd
yn union beth ydyw.
Ond mae'n dal i fod yn ddefnyddiol gallu data penodol yn yr un modd
bod cyfrifiadur yn ei wneud.
Mae gennym syniad hwn o'r system hecsadegol, sef
sylfaen 16, yn lle sylfaen 10 neu sylfaen 2.
Sy'n golygu bod gennym 16 o digidau i weithio gyda yn hytrach na 10 neu 2.
Ac mae'n llawer mwy ffordd gryno i fynegi
gwybodaeth deuaidd ar system gyfrifiadurol, mae'n llawer mwy dynol dealladwy.
Felly mae gennym y digidau 0 drwy 9, ac yna
rydym hefyd wedi chwech ychwanegol hyn digits-- a, b, c, d, e, f a, sy'n cynrychioli 10,
ein syniad o 10, 11, 12, 13, 14 a 15, yn degol.
Weithiau, gyda llaw, wnewch chi helpu hefyd gweld y rhain drwodd f fel cyfalaf A
drwy F, sef y ffordd yr wyf yn tueddu i wneud hynny.
Mae wedi dim ond fy ffafrio arddull, ond naill ai yn iawn,
y ddau ohonynt yn cynrychioli 'n bert lawer yr un peth.
>> Felly pam yn oer hecsadegol?
Pam mae angen i ni ddefnyddio hyn sylfaen ychwanegol eraill?
Mae gennym eisoes 2 a 10, pam mae angen i ni 16?
Wel 16 yn bŵer o 2, ac yn y blaen pob digid hecsadegol, 0 trwy f,
cyfateb i unigryw archebu, neu drefniant unigryw
o 4 digid deuaidd, 4 ddarnau.
Ac felly yn yr ystyr honno, gallwn fynegi rhifau hir iawn, cymhleth, deuaidd
mewn hecsadegol mewn llawer ffordd fwy cryno,
heb golli gwybodaeth neu orfod gwneud addasiadau arbennig o feichus
ar y niferoedd hynny.
>> Felly, fel yr wyf newydd ei ddweud, pob digid hecsadegol
cyfateb i unigryw trefniant o 4 digid deuaidd.
Felly y llinyn deuaidd 0000 cyfateb i digid hecsadegol 0.
0110 yn cyfateb i 6 digid hecsadegol.
A 1111 yn cyfateb i digid hecsadegol f.
Os ydych yn edrych ar siart hwn, yn arbennig
os ydych yn edrych ar y ochr chwith y siart,
gallwch eisoes yn gweld mae 'na dipyn o broblem amwysedd yma.
Degol 0 'n bert lawer gwahaniaethu rhwng hecsadegol 0,
ar wahân i'r ffaith ei fod o dan colofn sy'n dweud hecsadegol.
>> Ond rydym nid mae'n debyg y bydd bob amser gael y golofn yno.
Yn gyffredinol, pan fyddwn yn mynegi rhifau i mewn nodiant hecsadegol
gwahaniaethu'n glir ohonynt o'r nodiant degol,
byddwn fel arfer yn eu rhagddodiad gyda'r rhagddodiad 0x.
0x golygu dim byd mewn gwirionedd, 'i' jyst cliw i ni fel bodau dynol
bod yr hyn yr ydym chi ar fin ei weld, neu ar fin dechrau dosrannu,
yn rhif hecsadegol.
Yn amlwg ar gyfer y digidau uwch a, b, c, d, f a, sy'n cyfateb i 10-15
mae'n eithaf diamwys sy'n mae hynny'n rhif hecsadegol.
Ac yn wir, unrhyw hecsadegol Rhif sydd llythyrau ynddo,
Mae'n debyg mai eithaf amlwg fel rhif hecsadegol.
Ond, yn dal, ar gyfer y mwyn bod yn glir, 'i'
bob amser yn syniad da i rhagddodiad bob tro y byddwch
cyfeirio at digid fel hecsadegol rhif trwy prefixing â 0x.
>> Felly, deuaidd, wrth i ni Meddai, mae gan werthoedd lle.
Mae y lle rhai, yn lle fesul dau, lle pedwar, ac yn lle wyth.
Ac mae ganddo hefyd degol werthoedd lle, mae'r rhai, degau, cannoedd, a miloedd
y gallwn i gyd yn cofio o radd ysgol.
A hecsadegol oes eithriad yma, mewn gwirionedd.
Mae hefyd yn werthoedd lle ond yn lle hynny o fod pwerau 2 neu bwerau o 10,
eu bod pwerau 16.
>> Felly, yr ydym yn gweld nifer fel rydym hwn yn gwybod yn eithaf amlwg ei fod yn 397, dde?
Wel, os gwelwn nifer fel hyn, rydym yn gwybod nad yw hyn yn 397 anymore.
Mae hyn yn y hecsadegol rhif tri 9-7.
Dyw hi ddim yn 397, mae'n golygu rhywbeth gwahanol,
oherwydd ein bod yn defnyddio pwerau o 16 gan fod yr holl o'n gwerthoedd lle yn hytrach na phwerau
o 10.
Yn wir, mae'r gwerthoedd le yma y byddai yn y lle rhai, y lle sixteens,
a'r lle 2-100-pum deg chwech, sy'n cyfateb i ein syniad o rai
lle, degau lle, ac mae cannoedd lle, os bydd y nifer yn 397.
Ond gan ei fod yn 0x 397, rydym wedi a rhai lle lle, sixteens,
a lle 2-100-pum deg a chwech.
Neu, mae 16 i'r 0 lle, sydd 1.
A 16 i'r lle pŵer cyntaf, 16.
Mae 16 sgwariau lle, 256, a yn y blaen, ac yn y blaen, ac yn y blaen.
Felly rhif hyn yn wir 3 gwaith 16 sgwâr, yn ogystal â 9 gwaith 16, ynghyd â 7.
Doeddwn i ddim yn gwneud y cwestiwn yma, ond nid yw'n 397, mae'n llawer, llawer mwy na hynny.
>> Yn yr un modd, gallem gael ADC 0x, yn dda bod 'na adegau 16 sgwâr.
Neu os byddwn yn cyfieithu y at ein syniad o rifau degol, dyna 10 gwaith
16 sgwâr, yn ogystal â amserau d 16, neu yn ogystal â 13 gwaith 16.
A pheidiwch â phoeni os nad ydych wedi cof hynny d yn 13, neu unrhyw beth fel 'na,
nid oes gormod o o ddigidau llythyr yma
a bydd yn dod yn 'n athrylithgar yn weddol gyflym.
Felly, unwaith eto mae hyn yn 10 gwaith 16 sgwâr, yn ogystal â 13 o weithiau 16, yn ogystal â 12 gwaith 1.
ADC Felly 0x.
>> Felly, fel y dywedais, mae pob grŵp o 4 digid deuaidd
yn cyfateb i un digid hecsadegol,
ac felly mae'n mewn gwirionedd 'n sylweddol hawdd i newid yn ôl ac ymlaen
rhwng hecs a deuaidd.
Os oes gennych y llinyn hir o digid deuaidd, y cyfan sydd angen i chi ei wneud
yn dechrau eu grwpio yn iawn i'r chwith fel grwpiau o 4.
Ac yna gallwch atgyfnerthu i mewn rhifau hecsadegol,
cyfyngu yn ddifrifol y nifer o Digidau rhaid i chi brosesu yn feddyliol.
Yn hytrach na 32 0 ac 1, a fel y byddwn yn gweld mewn eiliad,
efallai y byddwch yn gallu cael i lawr i ddim ond 8 digid hecsadegol, mae llawer
yn fwy cryno.
>> Mae'r siartiau ychydig o sleidiau gefn bydd eich helpu i chyfrif i maes mapio hwn,
er, unwaith eto wnewch chi helpu cof ei fod yn weddol gyflym.
Byddwn yn mynd drwy esiampl ar hyn o bryd.
Felly, os oes gennym rif fel hyn, y rhif deuaidd wir yn fawr,
neu yr hyn sy'n ymddangos i fod yn rhif deuaidd mawr.
A'r rheswm yr wyf yn dweud hynny, mae'n jyst so-- ei fod yn behemoth, dde?
Mae cymaint o 0 ac 1 yn yno.
Ond rydym yn ei wneud yn ôl pob tebyg nid 'n sylweddol yn meddu ar synnwyr o'r hyn
maint y rhif hwn mewn gwirionedd.
Nid oes gennym unrhyw syniad beth y mae'n Byddai yn cyfateb i degol.
Ac yn wir, ni fyddwn yn hyd yn oed yn gweld yr hyn y mae'n cyfateb i mewn degol ar hyn o bryd.
Efallai y byddwn yn gallu fynegi hyn mewn ffordd sy'n
Byddai rhoi mwy o wybodaeth i ni am pa mor fawr y nifer hwn yn.
>> Felly gadewch i ni fynd i'r broses drosi.
Y peth cyntaf y mae angen ei wneud yw ein bod am i grŵp
digid hyn allan yn grwpiau o 4, gan ddechrau o'r dde
a gweithio ar y chwith.
Mae digwydd bod yn 32 digid yma, sy'n golygu bod gennym
toriad llwyr neis o 8 grŵp o 4.
Cofiwch fod pob grŵp o 4 yma, unigryw cyfateb
at digid hecsadegol.
Felly, byddwn yn dechrau eto adeiladu ein Rhif o'r dde, ac yn gweithio chwith.
Wel beth 1101?
Wel rydym yn gwneud y cwestiwn yn ein pen, mae gennym 1 yn y lle wyth, sef 1
yn y lle pedwar, a 0 yn y fesul dau lle, ac mae 1 yn y lle rhai.
Dyna 8 ynghyd â 4 ac 1, y byddem yn gwybod fel 13.
Ond rydym ni fyddai yn ôl pob tebyg yn ysgrifennu 13 allan, oherwydd ein bod yn gweithio gyda hecsadegol.
Mae angen i ni ei newid i'r hecsadegol sy'n cyfateb i 13, sydd yn d.
>> 0011, yn dda bod 'na 0 yn y lle wyth, mae 0 fesul pedwar lle,
o 1 yn y lle fesul dau, ac mae 1 yn y lle rhai.
Dyna 3.
Yr wyf yn golygu cadw gwneud hyn eto, mae gennym yma 9.
Ac yna 11, ond mae hynny'n b, galw i gof.
2, 10-- neu a-- 6, a 4.
Ac fel y llinyn mawr iawn o 0 ac 1 yn y top
cael ei fynegi yn fwy cryno yn hecsadegol fel 0x 46a2b93d.
>> Wel, OK, rydym wedi dysgu newydd sgiliau oer, beth yw'r pwynt?
Efallai nad ydym yn defnyddio hyn i gyd y amser, gan ein bod yn mynd i weld cyn bo hir,
rydym yn defnyddio hecsadegol eithaf llawer fel rhaglenwyr.
Ddim o reidrwydd ar gyfer y pwrpas o wneud mathemateg ag ef,
ond am fod llawer o weithiau cyfeiriadau cof yn ein system
cael eu cynrychioli yn hecsadegol.
Mae'n ffordd wirioneddol cryno i fynegi rhifau fel arall yn feichus, deuaidd.
Ac felly, unwaith eto, efallai y byddwch not-- mae'n debyg eich bod
Nid yw mynd i wneud unrhyw mathemateg ag ef, nid ydych yn
mynd i fod yn lluosi rhifau hecsadegol gyda'i gilydd,
neu wneud unrhyw beth 'n annaearol fel' na.
Ond mae'n sgil ddefnyddiol cael er mwyn i chi fynegi a deall
cyfeiriadau cof, ac eraill ffyrdd o ddefnyddio data yn C.
>> Rwy'n Doug Lloyd, mae hyn yn CS50.