DOUG LLYOYD: Do deksesumaj nombroj, kvazaŭ ni bezonis alian bazon nombro skemo pravas? Nu, plej multaj okcidentaj kulturoj, vi versxajne konas, uzi la dekuma system-- bazo 10, reprezenti nombraj datumoj. Ni havas la ciferoj 0, 1, 2, 3, 5, 6, 7,8,9. Kaj se ni devas reprezenti valoroj pli altaj ol naŭ, ni povas kombini tiujn ciferojn uzante la nocion de loko valoro. Do por 10, ni havas 1 cifero sekvata de 0 ciferaj kaj ni intuicie kompreni ke kion ni faras tie estas ni multiplikante la unua 1 per 10, kaj tiam aldonante 0 por totalo de 10. Komputiloj fari ion bela simila, kiel vi probable familiara, kun la duuma system-- bazo 2. La diferenco estanta ke ekzistas nur 2 ciferoj labori with-- 0 kaj 1. Kaj do nia loko valoroj, anstataŭ esti unu, dek, cent, mil, kiel ili estus en la dekuma sistemo, estas unu, du, kvar, ok, kaj tiel plu. Jen la afero kvankam, tiuj 0-aj kaj 1-oj, speciale se ni esti komputikistoj kaj ni faras multajn programado aŭ laborante kun komputiloj, estis iranta esti vidante multajn duumaj nombroj. Kaj tiuj 0-aj kaj 1-oj en grandaj ĉenoj povas esti tre malfacile analizi. Ni ne povas nur rigardi ĉenon de 0-aj kaj 1-oj kaj nepre scii ĝuste kio ĝi estas. Sed estas ankoraŭ utile povi esprimas datumoj en la sama maniero ke komputilo faras. Ni havas ĉi nocio de la deksesuma sistemo, kiu estas bazo 16, anstataŭ bazo 10 aŭ bazo 2. Kio signifas, ke ni havas 16 ciferoj labori kun anstataŭ 10 aŭ 2. Kaj ĝi estas multe pli konciza maniero esprimi duuma informojn en komputilo sistemo, ĝi estas multe pli homa komprenebla. Do ni havas la ciferoj 0 tra 9 kaj poste ni ankaŭ havas tiujn ekstrajn ses digits-- a, b, c, d, e, kaj f, kiuj reprezentas 10, nia nocio de 10, 11, 12, 13, 14 kaj 15, en dekuma. Foje, parenteze, vi ankaŭ vidi tiujn objektojn tra f kiel ĉefurbo A tra F, kiu estas la vojo mi emas fari ĝin. Ĝi estas nur mia preferita stilo, sed ĉu estas fajna, ili ambaŭ reprezentas belan multe la sama afero. Do kial estas deksesuma malvarmeta? Kial ni bezonas uzi tiun alian plian bazo? Ni jam havas 2 kaj 10 kial ni bezonas 16? Nu 16 estas povo de 2, kaj tiel ĉiu deksesuma cifero, 0 tra F, respondas al unika ordigante, aŭ unika aranĝo de 4 duuma ciferoj, 4 bitoj. Kaj tiel en tiu senco, ni povas esprimi tre longa, kompleksa, duumaj nombroj en deksesuma en multe pli konciza maniero, sen perdi informojn aŭ devi fari aparte maloportuna konvertiĝoj sur tiuj nombroj. Do, kiel mi ĵus diris, ĉiu deksesuma cifero respondas al unika aranĝo de 4 duuma ciferoj. Do la duuma kordo 0000 respondas al deksesuma cifero 0. 0110 korespondas al deksesuma cifero 6. Kaj 1111 respondas al deksesuma cifero f. Se vi rigardas tiu diagramo, aparte se vi rigardas la maldekstra flanko de la diagramo, vi povas jam vidi, ke estas iom de ambigüedad problemo tie. Dekuma 0 estas preskaux nedistingeblaj de deksesumaj 0, aliaj ol la fakto ke ĝi estas sub kolumnon kiu diras deksesuma. Sed ni probable ne ĉiam havas tiun kolumnon tie. Ĝenerale kiam ni esprimas nombroj en deksesuma notacio distingi klare ilin de decimala notacio, ni kutime prefikson ilin kun la prefikso 0x. 0x signifas nenion en realo, ĝi estas nur indikilo pri ni kiel homoj ke kio ni estas proksimume vidi, aŭ komenconta analiza, estas deksesuma nombro. Evidente por la altaj ciferoj, b, c, d, kaj f, kiuj respondas al 10-15 estas sufiĉe unusenca tio tio estas deksesuma nombro. Kaj fakte, neniu deksesuma nombro kiu havas leterojn en ĝi, estas probable sufiĉe preterlasas kiel deksesuman nombron. Sed, ankoraŭ, por la pro klareco, ĝi estas Ĉiam estas bona ideo prefikson ĉiufoje vi referi al cifero kiel deksesuma numeron de prefiksi a 0x. Do, duuma, kiel ni diris, ĝi havas lokon valoroj. Ekzistas tiuj loko, duope loko, a kvarpiede loko, kaj Eights loko. Kaj dekuma ankaŭ havas lokon valoroj, la tiuj, dekoj, centoj kaj miloj ke ni ĉiuj eble memoras de grado lernejo. Kaj deksesuma neniu escepto tie, vere. Ĝi ankaŭ havas lokon valoroj sed anstataŭe esti potencoj de 2 aŭ potencoj de 10, ili estas potencoj de 16. Do ni vidu kelkajn ŝatas tion ni bela klare scias ke estas 397, ĉu ne? Nu, se ni vidas kelkajn kiel tiu, ni scias ĉi ne estas 397 anymore. Tio estas la deksesuma numero tri-naŭ-sep. Ĝi ne estas 397, tio signifas io malsama, ĉar ni uzas potencojn de 16 kiel ĉiuj de nia loko valoroj anstataŭ potencoj de 10. Fakte, la loko valoroj tie farus esti tiuj loko, la sixteens loko, kaj la du-cent-kvindek-sesoj loko, kiu respondas al nia ideo pri tiuj loko, dekoj loko, kaj centoj loko, se la nombro estis 397. Sed ĉar ĝi estas 0x 397, ni havas a lokon de unuoj, sixteens loko, kaj du-cent-kvindek-sesoj loko. Aŭ, 16 al la 0 lokon, kiu estas 1. A 16 al la unua potenco loko, 16. A 16 kvadratoj loko, 256, kaj tiel plu, kaj tiel plu, kaj tiel plu. Do tiu nombro estas vere 3 foje 16 kvadrato, plus 9 fojoj 16 plus 7. Mi ne faris la math tie, sed ĝi ne estas 397, estas multe, multe pli grandaj ol tio. Simile, ni povus havi 0x adc, bone ke estas tempoj 16 kvadratoj. Aŭ se ni tradukos ke por nia nocio de decimalaj numeroj, kiuj estas 10 fojojn 16 kvadratoj, plus d fojojn 16, aŭ pli 13 fojojn 16. Kaj ne zorgu se vi ne parkeris ke d estas 13, aŭ ion similan, tie ne tro multaj el tiuj letero ciferoj kaj ĝi fariĝos intuicia bela rapide. Do denove ĉi estas 10 fojojn 16 kvadratoj, plus 13 fojojn 16 plus 12 fojojn 1. Do 0x adc. Do, kiel mi diris, ĉiu grupo de 4 duuma ciferoj respondas al sola deksesuma cifero, kaj tiel ĝi estas efektive vere facile ŝanĝi reen inter deksesuma kaj binara. Se vi havas ĉi longa ĉeno de duumaj ciferoj, ĉiuj vi bezonas fari estas komenci kolektante ilin dekstra al maldekstra kiel grupoj de 4. Kaj tiam vi povas solidigi ilin en deksesuma nombroj, severe limigi la nombron de ciferoj vi havas procesi mense. Anstataŭ 32 0-aj kaj 1-oj, kiel ni vidos en dua, Vi povus esti kapabla akiri ĝin al nur 8 deksesumaj ciferoj, multan pli konciza. La lertaj kelkajn lumbildojn malantaŭeniri volo helpi vin elkompreni ĉi mapado, kvankam, denove vi instruos vin enmemorigi ĝin sufiĉe rapide. Ni iru tra ekzemplo nun. Do se ni havas numeron kiel tiu, tiu vere granda duuma nombro, aŭ kio ŝajnas esti grandan duuma nombro. Kaj la kialo mi diras ke, ĝi estas nur so-- ĝi estas hipopotamon, dekstra? Ekzistas tiom da 0-aj kaj 1-oj tie. Sed ni probable ne vere havas la senton de kio la grando de ĉi tiu numero estas vere. Ni ne havas neniun ideon kio ĝi respondus al dekuma. Kaj fakte ni eĉ ne vidas kion tio respondas al en dekuma nun. Ni eble povus esprimi tion en maniero kiu donus al ni iun pli informo pri ĵus kiom granda tiu nombro estas. Do ni iru al tiu konvertiĝo procezo. La unua afero ni devas fari estas ni volas grupo tiuj ciferoj el en grupojn de 4, komencante de dekstre kaj laborante maldekstren. Tie hazarde estas 32 ciferoj tie, kio signifas ke ni havas belan puran rompiĝon de 8 grupoj de 4. Memoru ke ĉiu grupo de 4 ĉi tie, unike respondas al deksesuma cifero. Do ni komencos denove konstrui nian numeron de dekstre, kaj laborante lasis. Nu kio estas 1101? Nu ni faros la math en nia kapo, ni havos 1 en la Eights loko, 1 en la kvarpiede loko, 0 en la duope loko, kaj 1 en la lokon de unuoj. Jen 8 Plus 4 plus 1, kion ni konus kiel 13. Sed ni probable ne skribi 13 ekstere, ĉar ni laboras kun deksesuma. Ni devas konverti ĝin al la deksesuma ekvivalento de 13, kiu estas d. 0011, puto, kiu estas 0 en la Eights loko, 0 en kvarpiede loko, 1 en la duope loko, kaj 1 en la lokon de unuoj. Jen 3. Mi signifas teni farante tion Denove, ni havas tie 9. Kaj poste 11, sed tio estas b, revokon. 2, 10-- aŭ a-- 6, kaj 4. Kaj tiel ke tre granda kordo de 0-aj kaj 1-oj de la supro estas pli koncize esprimita en deksesuma kiel 0x 46a2b93d. Nu, bone, ni lernis nova malvarmeta lerteco, kio estas la punkto? Ni povus ne uzi tiun tutan tempo, kiel ni tuj baldaŭ vidi, ni uzu deksesuma tute multe kiel programistoj. Ne nepre por la celo fari math kun ĝi, sed ĉar multajn fojojn memoro adresoj en nia sistemo estas reprezentitaj en deksesuma. Estas vere konciza maniero esprimi alie maloportuna, duumaj nombroj. Kaj do, denove, oni povas skribi not-- vi probable Ne tuj faros neniun math kun gxi, estas ne tuj estos multiplikante deksesumaj nombroj kune, aŭ faranta ion strangan tiel. Sed estas utila lertecon havi do vi povas esprimi kaj kompreni memoro adresoj kaj aliaj manierojn uzi datumojn en C. Mi Doug Lloyd, tiu estas CS50.