[Powered by Google Translate] [Elektroninis STATIC Melodijos] Rob: Gerai, tai, ką mes ką tik davė jums į CS50 Tarpai. Ali: Palauk, palauk atgal į viršų. Sveiki atvykę į skyrių! Rob: Sveiki atvykę į skyrių! Ali: Yay! ROB: Supersection! Ali: Aš Ali ir is Rob. Gerai, kad dabar mes paaiškinti erdvėse. Rob: Taigi, ką mes ką tik davė jums į CS50 Tarpai. Jūs naudojate šį daug jūsų sekcijose šį semestrą. Iš esmės, mes jau galite atsisiųsti prietaisą. Ir jūs galite galvoti apie CS50 erdvių web sąsają, kalbate su prietaiso kad mes turime kai kurioms serverio kažkur. Todėl jūs galite paleisti savo kodą, šioje sąsajoje, ir mes atsiųsime pamatyti, kaip daryti dalykus. Taip pat galite pažvelgti į kitų žmonių skyriuje kodą, ir - Ali: Ir kaip kai kurie žmonės sužinojau, jūs galite kalbėtis žmonių pusėje. Ir mes visi, taip pat, todėl, kad įdomu. Nagi, ateiti ir sėdėti. Atsisėsti. ROB: Taigi, skyriai yra Ali: Ne, ne, jus vaikinai gali ateiti. Rob: Sekcijos bus daug daugiau interaktyvių šį semestrą. Ali: "O, jis kaip Oh. Gerai, kietas. Taigi, jei jus vaikinai tiesiog ateina, jūs galite pereiti į šią nuorodą, jei aš galiu gauti ten, teisę ten. Mes negalime tikrai rašyti, nes nėra lenta vietos, tačiau ši nuoroda čia, eikite į savo kompiuteriuose, ir jūs turėsite įvesti CS50 Erdves, kuri yra gana kietas dalykas. Gerai. Ar turite problemų? Rob: Taigi, jūs galite rasti problemų - mums reikia, kad būtų galima parašyti šį kažkur. Taigi, jei jūs einate į cs50.net/psets ir tai yra hakeris supersection - ir tu į Hacker versijos 1 pset, pažvelgti specifikacijos kažkur žemyn puslapyje Ali: Taigi, iš esmės, o Rob ieškote, ką mes ketiname daryti skyriuje šiandien yra problemų skyrius - Rob: - puslapyje 8. Ali vadinamas problemų skyrius Rob: skyrius klausimus. Ali: Atsiprašome, klausimų skyriuje. Ir tie, yra tai, ką mes ketiname eiti per - jie yra, ką mes ketiname eiti per šiandien skyriuje. Ir mes ketiname kodą CS50 erdvių, ir tikiuosi, kad bus dirbti. Ir mes galime tik kalbėti per juos. Ir jus vaikinai galite užduoti klausimus, jei manote, Rob: Taigi tai yra gauti turi būti dažnas dalykas su daugeliu psets. Manau, kad su šiuo vienu, ji sako, jūs neturite į rankas šiuos klausimus in Bet idėja yra ta, kad šie klausimai yra įdėti į pset, ir jūs galite ateiti skyrių, kad į šiuos klausimus atsakyti. Arba, jei nepatenka į skyrių, jūs galite į juos atsakyti savo arba gauti Pagalba darbo valandomis ar kažką. Tačiau tai yra klausimai, kurie turėtų paruošimo problemą,. Ir hacker leidinyje klausimus daug gali būti tik apie plėsti savo dabartinę CS žinias. Ali: Taip, labai daug. Gerai, kad yra visi CS50 erdvėse? Sveiki, užeina 1 GARSIAKALBIS: Ar mes galime pamatyti adresą dar kartą? Rob: Taip, tai bus lengviau, kai jūs iš tikrųjų jūsų sekcijose, ir jūsų TF gali tiesiog rašykite jums URL anksto. Ali: Yay, atsisėsti. Yra vietų čia. Priekyje yra ne taip blogai. Ką? Taigi, CS50 Tarpai, mes vis ten. Ar kas nors turite kokių nors klausimų prieš mes į - Kas? Rob: ten net ne bet kuriuo kreida. [Nesigirdi] Ali: Atsiprašome. Galite naudoti jūsų nagai? Mes labai nedaug pažangių technologijų labai aukštųjų technologijų klasės kambaryje. Gerai, visi tipo geras? Ar kas nors vis dar klausimus apie tai? Kaip minėjau anksčiau, mes ketiname eiti per klausimų skyriuje kad pset specifikacijos. Taigi, čia tik pora problemų, kad mes ketiname kodas CS50 erdvių. Ar visi gerai? Gerai. Geras? ROB: Ar turite nešiojamąjį kompiuterį? Ali: Jūs galite pakabinti su Lucas. Jis sėdi šalia tavęs. Klijavimas laiką. Rob: Taigi, pradėti su pirmąja problema? Ali: Taip. Mes galime pradėti. Do You Want Me - Aš galiu eiti. Taigi, mes pereiti į pset specifikacijas. O, kodėl tai - Rob: kontrolė. Ali: Gerai, kad mes einame į atsakymą šie dalykai taip pat? Rob: O, taip. Taigi - Ali: "O, padarė EVERYONE žiūrėti Rob zaczarowanym šortai? Gerai, kietas. Rob: Taip, aš ne manau, mes būtinai tikimasi, kad jūs turite žiūrėdavau ją prieš atvykdami į šį skyrių, tačiau mes galime aptarti tuos problemos iš anksto, nes jie yra pagal Klausimų dalykų skyriuje. Taigi, jei turite ne stebėjo, nesijaudinkite. Tie, kurie turi gali pabandyti atsakyti. Taigi, pirmas klausimas, kas yra iš anksto procesorius, kaip # include susiję? Taigi, ar kas nors turi atsakyti už tai? Ali: Jūs vaikinai gali kalbėti it out. Žinoma, eiti į priekį. SPEAKER 2: # include yra tam tikrų iš anksto parašyti kodą ir vietoj kopijuoti ir įklijuoti jį į savo programą, tiesiog pasakyti, įtraukti jį, procesorius žino, kad jis ten ir kad ji turėtų įtraukti ją vėliau arba prieš ką nors atsitiks. Ali: Taip, nuostabus. Cool. Rob: Taigi, kai jūs iš tikrųjų sudaryti programą, pasirengimo procesorius tai pirmas žingsnis. Kompiliavimas vyksta keturių didžiųjų žingsnių. Taigi iš anksto procesorius yra pirmasis didelis vienas, ir tai šis vaikinas, kuris eina per ir atrodo visiems šių maišos simbolių. Ir viena eilutė, kuri prasideda maišos, iš anksto procesorius žiūri į jį ir mato jei ji gali apdoroti. Taip # include pasakoja pasirengimo procesorius ieškoti kai cs50.h failą ir tiesiog nukopijuokite ir įklijuokite savo turinį į šį failą. Kad būtų galima tikrai # include viską, ką nori, bet tai daugiausia bus H failus. Mes ne Dotarłeś # define, kad nesvarbu. Ali: Taip, mes gerai, kad vienas. Ar kas nors turite kokių nors klausimų apie tai? Ar gerai? Kitas klausimas. SPEAKER 3: Artimiausiu ten buvo kažkas apie c, taip pat.? Yra tai, kad atitinkama, ar tai neturi reikšmės? Rob: apie C anksto procesorius? SPEAKER 3: Taip, ar aš darau ką nors? Rob: Taigi trumpas galėjo buvo parodyta išankstinio apdorojimo šį failą ir išvedė jį į kitą c failas, todėl jūs galite iš anksto apdoroti šį failą - kai jūs tiesiog paleisti kaip, hello or Apsukite metalinis garsas hello.c, kad jūs darote visą vienas didelis žingsnis rinkinys. , Bet jūs galite aiškiai tai padaryti į atskirų jos veiksmus. Taigi, pirmiausia galite iš anksto apdoroti. , Tada galite surinkti, tada jūs galite surinkti, ir tada jūs galite įdėti nuorodą. Mes susisieksime su tų kitų. Tačiau išankstinio apdorojimo, rūšies pasirengimo procesą, ir tada jis eina į kitą. c failas. Kadangi išankstinis apdorojimas nėra tikrai nieko keisti. Tai tiesiog kopiją ir įklijuoti krūva. Galite rankiniu būdu nukopijuokite ir įklijuokite jį sau. Ali: Ir viskas būtų aišku, c failas yra C byla, todėl parašyta C kodas. Taigi, tai, kas vyksta nuo C kodas C kodas. Jūs tik pridėti daugiau kodą svaro. Rob: Kai iš anksto apdoroti, ji vis dar galioja c failas. SPEAKER 3: Gerai. Ali: Geras klausimas. Man tai patinka. Gerai, kitas klausimas. Kas yra kompiliatorius? Kas nors? Taip. SPEAKER 4: Ji pakeičia anksto apdorotų kodą į surinkimo. Ali: Perfect. Rob: Taip. Ali: Cool. Rob: Tam, kad tai, ką sudarytojas tai daro specialiai kai mes naudojame Apsukite metalinis garsas. Labai bendra prasme, kompiliatorius yra tik viena kalba kodą, pavyzdžiui, atsižvelgiant ir paversti jį į kitą kalbą. Taigi, C - gerai, Apsukite metalinis garsas vartoja kodą, kad, C ir paversti jį į surinkimo. Ir jūs neturite, kad būtų galima suprasti asamblėjos metu. Bet tai kalba, kad tai paversti jį. Ali: Gerai. O ką montuotojo? Kas nors? SPEAKER 5: [nesigirdi į dvejetainį? Ali: Atsiprašau, ką? SPEAKER 5: [nesigirdi į dvejetainį? Rob: Taip. Ali: Taip. Rob: Taigi surinkėjas - surinkimas kodas yra tikrai, tikrai arti, ką jūsų kompiuteris gali suprasti, tačiau nepamirškite, kad tai ne visai suprasti tekstą , kuri yra surinkimas kodas. Turite konvertuoti jį į tiesia 1s ir 0s. Tai, pavyzdžiui, tiesioginio vertimo procesą. Mes gali tiesiog suteikti jums lentelę, kad žemėlapiai, ką kiekvienas surinkimo instrukcija reiškia. Tačiau surinkėjas tiesiog daro šį vertimą už jus. Tai pakeisti surinkimo kodą į 1s ir 0s. Ali: Ir tada, naujausia, kas Linker? Ir kaip-lcs50 susiję? Kas nors? Rob: Tai sunkiausia ir mažiausiai paaiškinti vieną sudarytojas vaizdo. Ali: Ar kas nors prisimena išleistuvės lcs50 komandą? SPEAKER 6: Kai jums teko padaryti. Ali: Tai padaryti. Taip, v ÷ sioje, gerai. Ar yra kokių nors spėlionės ar neaiškiais - Taip, eikite. SPEAKER 7: aš nesu įsitikinęs, nes savo trumpą tikrai [nesigirdi], tačiau tai buvo kažkas apie tai atskirus failus su kiekvienoje bibliotekoje ir tada pradėti juos visus kartu vienoje bibliotekoje? Rob: Taip. Taigi, kai turite hello.c, tai tikrai paprasta programa. Jūs tikrai tik tai vienas dalykas. Bet kai jūs gaunate į kitas programas - ir aš manau, net tada, kai GetString savo programose, jums reikia norint pradėti įskaitant kitus failus. Taigi CS50 biblioteka yra viena tokia byla, kurioje mes turime įgyvendinti iš GetString ir GetInt ir visus tuos dalykus. Taigi, kas Linker daro tai eina aplink ieškote per visą šių bylos, matydami, kai funkcijos yra apibrėžtos, todėl įsitikinkite, kad, kai aš vadinu GetString kažkur, jis žino, kad GetString reiškia, kad jis GetString per CS50 bibliotekoje. Taigi Linker tiesiog per visus šiuos failus, smashes juos kartu, ir dabar turite vykdomąjį failą. Taigi reikia nepamiršti, jei jūs naudojate CS50 biblioteką, jums reikia ir # Include viršuje, ir tada taip pat savo make komandai, kaip jums sakė, jūs turite turėti-lcs50. Taigi, jūs galite ne tik turėti vieną. Taip, kad tiesiog kažkas, kad reikia nepamiršti, ateičiai. Speaker 8: Taigi, galime sakyti, kad buvo dar vienas biblioteka, kaip cs51.h, tai mes taip pat turi pridėti lcs51? Rob: vienintelė priežastis, tai lcs50 puikiai veikia, nes mes turime, kad atidėta žemė konkrečioje vietoje jūsų prietaisų, kad ji žino, kas -Lcs50 priemonėmis. Mes galime tiesiog duoti jums cs50.c failą, tada galima sudaryti, sakydamas: Apsukite metalinis garsas hello.c cs50.c, ir tada jis būtų savo vykdomąjį įgyvendinant šie du failus kartu. Ji žino, kad per nors katalogą, kad mes nurodytos-lcs50 reiškia cs50.c prietaisai. Taigi, jei jūs norėjo, cs51.c apibrėžtiną Just saying-lcs51 tada mes taip pat reikia įdėti ją į tą katalogą, todėl žino, kur ieškoti. Ali: Koks buvo klausimas? 7 GARSIAKALBIS: Kodėl jūs turite susieti CS50 , jei: - wasn't kopijuoti / įklijuoti pirmąją pakopą, kai jums iš anksto apdoroti? Ali: Ar norite jį priimti? Rob: Žinoma. Taigi cs50.h byla yra atskirta nuo cs50.c c failas. Ar jūs Dotarłeś funkcionuoti prototipų klasėje? Gerai. Taigi, iš esmės, cs50.h failas yra tik ketinate kopijuoti ir įklijuoti Ali: Ar jus vaikinai žino, ką parašai? Gerai, todėl gana daug, jei peržvelgsite Rob: Tarkime, cs50.h nėra. Dabar šį failą - darote Styginių s = GetString. Bet kai mes Dotarłeś į šį punktą kodą, jis neturi idėjos, ką GetString. Ji žino, tai funkcija, nes jūs skambinate. Bet jis nežino, kad tai iš tikrųjų turėtų grįžti į eilutę. Taigi, kaip ir sakiau, string s = GetInt, tai nėra jokios prasmės, nes esate prisijungęs sveikąjį skaičių į eilutę. Tačiau jis neturi žinoti, kad GetString prasminga, nes ji nėra žino, kad GetString grąžina eilutę. Taigi, kas cs50.h sako kažką panašaus į tai. Ali: Taigi, kas Rob rašo, tai pažadas, kad tokiu būdu ji ketina turėti šią funkciją, vadinamą GetString. Rob: Tai yra viskas, ko cs50.h kopijuoti ir įklijuoti čia, taip pat kaip GetInt ir visus tuos dalykus. Ir tai tik sako, kad GetString grąžina eilutę. Jūs nežinote, kaip ji įgyvendinama dar, bet kai mes turime šioje eilutėje, o dabar jis žino, kad ji teisingai grąžina eilutę. SPEAKER 9: Taigi, jei mes ne nerimauti # include dalykas ir vietoj tik rašė tie, prototipą, kad mes iš tikrųjų ketinate naudoti? ROB: Taip. Todėl galime paleisti šią. SPEAKER 9: Ar jis? Taigi, pagal nutylėjimą, padaryti-l CS50 tik todėl, kad -. Rob: - išraiška. Ali: Taip, nes, kaip jūs sakėte, tai, padaryti failą. Rob: cs50.h taip pat atsitinka būti Typedef char * į eilutę. Jūs galite visiškai ignoruoti, ką tai reiškia, kad dabar. Bet tai taip pat yra kažkas, įtrauktas į cs50.h. Iki dabar viskas dirbo puikiai baudą. Jis veikia lygiai tas pats, kaip buvo, kai mes tiesiog turėjo # include. Ir taip cs50.h atsitinka per daug yra dalykų, jums reikia , pavyzdžiui, jūs negalite naudoti šioje programoje GetInt, bet nesvarbu. Tai bus tiesiog jį ignoruoti. Ali: Ir tada, kai jūs darote-lcs50 čia ir čia, kas vyksta apie tai, kad ji turinti faktinį įgyvendinami kodą. , Kad, kai ji iš tikrųjų yra, darydamas - rašyti kodą GetString. Taigi, tai ne tik pažadas nebėra. Jis iš tikrųjų išgyvena ir atsižvelgiant eilutę ir visi, kad kita. Prasminga? Turite klausimų? Gerai. Cool pupelės. Rob: Dabar galime pereiti prie tai kodas. Ali: Gerai. Taigi čia yra pirmoji problema. Todėl ji sako, parašyti programą, kuri verčia vartotoją mažosiomis raidė ir tada konvertuoti jį į didžiąsias nenaudojant Bitinis operacijas, taip už mėginio produkcijos žemiau. Todėl jūs galite pamatyti, paleisti su / a.out programą, ir tada jūs ketina pateikti mažosiomis raidėmis, o tada jūsų programa turėtų suteikti kapitalą A. Taigi, kodėl ne jums, vaikinai, visi mano, kad tai dėl CS50 erdvių kulka? Taigi jus vaikinai gali eiti čia. Ir galite ištrinti visą kodą čia. Ir tada jūs galite eiti į priekį ir pradėti kodavimo dalykas. Rob: Jūs tikriausiai norėsite naudoti GetChar, tai įtraukti į CS50 bibliotekoje. Ali: "Aš manau, kad jis gali būti geriau, jei įrašysite viršutinę dalį. Taigi jūs norite tiesiog pakeisti viduryje stuff. Eiti į priekį ir dirbti. Jauskitės laisvai bendradarbiauti vieni su kitais. Rob: galite klausti, jei turite - SPEAKER 10: Kas yra Bitinis operacija? ROB: Taigi, ignoruoti, kad šią problemą. Ali: Jei jūs nežinote, kad gerai. Rob: Mes ketiname jį naudoti kitą problemą. Bet jei jūs nežinote, ką Bitinis operatorius, kad gerai. SPEAKER 10: Ar, kad, pavyzdžiui, sukant jį į ASCII kodu? Ali: Ne ROB: Ne Jūs galite padaryti, kad šią problemą. SPEAKER 10: How do you do? Taigi, jei tik aš turėjau kažkur rašyti Ali: Arba kažkas rašyti. Rob: aš galėtų tiesiog rūšies tipo į tai. Ali: Tipas viršuje. Rob: O, aš sėdi ant mikrofono. Taigi, matėme paskaitą, kad ASCII kapitalo vertė yra 65. Ir kapitalo B bus 66, ir taip toliau. Taigi, jūs galite tiesiog naudoti "a" reiškia skaičių 65. Patinka, tai vertė 65. Galiu padaryti kažką panašaus į int x = 100 - "A". Ir dabar X turės vertę 100-65. Ali: Jūs galite paleisti, kad ir parodyti, kad. O, gal ir ne. Nieko tokio. ROB: turėjau jį spausdinti. 10 GARSIAKALBIS: Kaip jūs pasukti jį atgal pobūdžio? Ali: Taigi, jei jūs Don 't - jūs tiesiog priversti, kad ji būtų char, lygus. Rob: Taigi yra - skirtumas yra tarp char ir sveikasis skaičius tik pagal dydį. Taip atsitinka būti sveikasis skaičius gali atstovauti dalykų , kaip, keturi milijardai. Char tik galėtų atstovauti dalykų iki 255. Bet yra Skirtumo tarp jų nėra, išskyrus tai. Taigi galima pasakyti, char c = 65. Tai yra atitinka sakydamas, char c lygus "A". Ali: O, ne. Jis nėra iš tikrųjų išsaugoti dalykų. ROB: Ne, jūs negalite padaryti. Ali: Tai tiesiog - [Dejuoja] ROB: Gerai, kad Ali tiesiog parašė, buvo programa, kuri pirmą kartą spausdina 100 "A" kaip sveikasis skaičius, kuris buvo 35, kaip mes tikimės, nes 100 atėmus ASCII vertė yra 65 metai. Tada ji atspausdinti naudojant% C, o tai reiškia, interpretuoti kaip char. Taigi, 100 - 35. Aiškinant, kad kaip simbolį atsitinka būti grotelėmis. Jei peržvelgsite asciitable.com ar kas, pamatysite, kad 35 yra grotelėmis. Ali: Gerai, visi kiti paaiškinimai apie problemą? Gerai, jus vaikinai gali eiti į priekį ir tada daryti. Nesivaržykite užduoti klausimus arba kalbėtis tarpusavyje. Arba jei jūs jau padaryta, galite atsipalaiduoti. LUCAS: Ar jie tos pačios klasės, visos mažosios raidės, kad ir pat didžiąsias taip pat, kad, nes tai yra kažkas naudinga problema. Ali: Gera vieta, Lucas. Taip, ar visi gauti, kad jus vaikinai? SPEAKER 11: Taip. Štai kaip tai padaryti, tiesa? Ali: Teisė. ROB: Taip. SPEAKER 11: [nesigirdi] Ali: Gerai. ROB: Kas yra klausimas klausia? Tiesiog konvertuoti - Ali: Konvertuoti į didžiąsias mažosiomis. Štai ir viskas. Rob: Gerai. Ali: turėtume rašyti? Manau, mes tiesiog pažvelgti į kažkieno. Rob: Taigi, tie, kurie gali būti nesuprantamos, būdas - , jeigu turiu šiek tiek char c, ir, tarkim, atsitinka būti raidė D. Taigi dabar, kaip aš galiu suprasti, ką abėcėlės C raidė? Ne D, bet aš turiu galvoje, D būna, kad ketvirtoji abėcėlės raidė. Ir jei mes pradėsime skaičiuoti nuo 0, tada ji yra trečia pagal abėcėlės raidė. Taigi, jei yra 0, B 1, C 2, D 3, kaip aš galiu suprasti, int poziciją - abėcėlės C pozicija yra? Ar kas nors turi kokių nors idėjų? Ali: "Aš manau, kad jie visi kodavimo. Rob: Ką apie pirmąjį? SPEAKER 12: Taigi, ką yra atimti pirmasis? ROB: Taip. Ali: Taip, nuostabus. Taigi, jūs galite padaryti, kapitalo D - Oi, atsiprašau. Jūs imtis charakterį ir atimti pirmąjį variantą, kaip sakėte. Rob: D Taigi, jei yra kažkas panašaus į 68, ir mes atimti, kuris yra 65, tada mes gauname 3, mums sako, kad D yra trečioji abėcėlės raidė pradedant nuo 0. Todėl jūs galite naudoti, kad. Dabar mes žinome, ką abėcėlės raidė, kalbant apie didžiosios raidės, arba - išsiaiškinti, ką mes galime padaryti tą patį mažosiomis raidėmis mažosiomis poziciją mes. Ir mes galime naudoti, kad tada konvertuoti, kad į didžiąsias idėja labai panaši. Klauskite pasiūlymų? Ali: Ar jus vaikinai - Palauk, aš nežinau, kiek jūs vaikinai yra. Labiausiai tu padarei, jūs vis dar dirba, jūs pakimba? Jus vaikinai gali šaukti - įstrigo. Vienas asmuo įstrigo. Cool. Aš linkęs būti nesuprantamos, taip pat. SPEAKER 13: aš padariau. Ali: Tu padarei? Gerai. Atlikta. SPEAKER 13: [nesigirdi] Ali: Taip, cool. Ar jums patikrinti, kad jis yra mažosiomis forma? Gerai, kietas. Kur yra kiti žmonės? Ar šis patarimas padės jums, kaip ir JT klijuoti sau? SPEAKER 14: Tikrai ne, bet tik todėl, aš nežinau, aš ne jį virškinti. Ali: Gerai, kietas. Ar norite pabandyti - ar norite eiti ir kalbėti? Rob: Ką aš ketina pasakyti - todėl naudojant šią. Ar žinote, kaip mes turime kokią poziciją abėcėlės laiškas yra? SPEAKER 14: Gerai, todėl, kai jūs įtraukėte dalykų vienu citatos kuri grąžina? Rob: Taip. Jis bus išverstas į ASCII vertę, kurią jis atstovauja. Taigi, jūs norite eiti į ASCII lentelę arba kokia ji yra? Ali: Tik vienas iš jų? Rob: Taip. Taigi, kai jūs įdėti bet kurį iš šių simbolių, ignoruojant daug Ali: [nesigirdi] Rob: Oh, naudojant žymeklį. Ali: Taip. Tai buvo įdomu. Rob: Taigi, ignoruojant šias kairėje, kurie yra specialūs simboliai tie jei jūs įtraukėte bet kurį iš šių simbolių viengubomis kabutėmis, tada jis bus išverstas į šios kairėje vertės. Ali: Tai yra dešimtainis skaičius. Tai kaip su 65, B 66 rungtynių, ir jūs pastebėsite, kad jie visi abėcėlės tvarka, kuris daro skirtumą. Taigi, kaip sako Rob, anksčiau, šio kodekso, mes apskaičiuojant atstumą nuo pirmoji raidė, per se. Ir kad bus tas pats, ar tai didžiąsias arba mažąsias raides. Rob: Taigi, kai mes minus A, 65 D, 68, gauname 3. Kadangi D tris pozicijas į abėcėlė. Ali: Taigi, kaip jūs išversti, kad per mažai d? ROB: Taip. Taigi, jei aš turiu 3 dabar, aš žinau, aš noriu eiti tris raides į mes atsitikti, kad dabar vyksta didelėse, tiek mažosiomis, bet tarkim, aš noriu eiti 3 padėtis gali būti mažosiomis pusės dalykų. Taigi, kaip aš galiu tai padaryti? Aš žinau, mažosiomis raidėmis, yra 97. Taip, kaip man rasti tris pozicijas į mažosiomis raidėmis? SPEAKER 15: Aš turiu vieną klausimą iš tikrųjų. Ali: Taip, eiti į priekį. SPEAKER 15: Taigi, ji tikrai ne klausimas, jei aš žinau, šią poziciją, patinka, man nereikia šią lentelę. Rob: Ne. Jums niekada nereikės naudoti vienu iš šių numerių. , O tai yra svarbus dalykas, savo programose, kad jūs niekada neturėtų sunku koduoti bet kuris iš šių konstantų. Naudoti "a". niekada naudoti 65 arba 97. Ali: Tie, kurie vadinami magija numeriai, ir jie tikrai paini. Pavyzdžiui, kai jūs derinti kodą, jūs negalite prisiminti, kas kurį naudojote juos. Ir mums klasifikavimo savo kodą, mes tikrai ne žinoti, ką jūs naudojate juos. Todėl geriau, jei jūs iš tikrųjų naudoti simbolius, todėl yra daugiau prasmės žmonėms. Gerai, bet kokius kitus klausimus? Ar daugiau žmonių padaryti, arba - Manau, mes galime patikrinti. Tai tikrai Creepy, kad jūs galite pamatyti žmonių kodą. ROB: Taip. Mes neturime tai padaryti čia. Mes nežinome žmonių vardus, bet. Ali: Oh yeah, gerai, kad daro tai geriau, todėl mes dar objektyvus , o ne tiesiog atsitiktinai skinti ką nors. Nesijaudinkite. Aš tai ne. Jei turite atsitiktinių dalykų apie Never mind. Gerai. Kaip žmonės daro? SPEAKER 17: Taigi devynių eilutė turi išspausdinti charakterį? Rob: Taip. Ali: Taip. Taigi, jei jūs einate žemyn - Rob: Oh, negali padaryti. Ali: Pamatysite, kad atspausdinti grotelėmis. SPEAKER 17: O, gerai. ROB: Manau, dar vienas būdas galite pažvelgti į dalykus mes spausdinate du simbolių. Pirmasis mes spausdinimas yra raidė A. Kitą mes spausdinimas yra tik 65. Tai tikriausiai klykauti ant manęs už tai. Taigi, jei mes tiesiog paleisti, jūs pastebėsite, kad ji spausdina abu kartus. Kadangi mes prašome, tą patį. Mes prašome, kad spausdinti raidė A. Ir tada mes prašome spausdinti skaičius 65 aiškinamos kaip požymis, kuris yra tas pats dalykas. Ali: Ar turite ką pasakyti? Oh, just kidding, atsiprašau. Viskas bus gerai, kaip yra žmonių, - ROB: Mes galime tiesiog vaikščioti per ją. Ali: Gerai, taip, kaip jūs pradėti? Kas nors? Kaip užuominą, mes turime gauti kažką nuo žmonių, nuo typers. SPEAKER 18: [nesigirdi] Ali: Oh yeah, greitai, tobula. Taigi mes tipas - ką mes tipas? Kas nors? Ar man reikia tiesiog įveskite jį? Ar mes iš tikrųjų rašyti - Rob: Žinoma. Ali: Taigi mes įveskite printf, kad tai paskatins jį, todėl mes galime būti patinka, duok man ženklą. Gerai, ir kas tada? Kodėl jis tai daro? Rob: Nežinau. Ali: Gerai. Taigi dabar, mes pasakoja jiems duoti mums charakterį. Bet tada, kaip jūs iš tikrųjų gauti tą simbolį? SPEAKER 19: naudojimo GetString. Ali: GetString? GetChar? Gerai, kad kas yra skirtumas tarp virvele ir char? SPEAKER 19: Stygos yra serija, kaip simbolių masyvas. Ali: Cool, taip. Taigi šią problemą, mes tik reikia apsvarstyti vieną simbolį vienu metu, todėl mes tik ketinate daryti GetChar šioje instancijoje. Rob: Mes galime įgyvendinti funkciją, jei norime, kad paėmė visą eilutę ir perėjo į eilutę ir pakeisti mažosiomis didžiosiomis raidėmis ir visi didžiąsias į mažąsias. Bet čia mes tiesiog klausia vieną simbolį. Ali: Taigi dabar mes turime charakterį, bet tada mums reikia, kad jį išsaugotumėte. Taigi mes pridėsime char c - kas? SPEAKER 20: Apibrėžti kintamąjį. Ali: Taip, tiksliai. Taigi, mes turime mūsų charakterį. ROB: Manau, kad jums gali būti - jūs tik trys skyriai, kuris yra, kodėl ji šaukiantį į jus. Ali: Gerai, kietas, dabar, kad mes tabbing rinkinį, tai, kas vyksta toliau? Koks kitas žingsnis? Rob: Ką mūsų programa turėtų daryti keisti mažosiomis laišką didžiosios raidės. Ką daryti, jei atsitiktų įvesti grotelėmis? Kad - Ali: Tai geras simbolis. Mes ją naudojame daug. ROB: Ar, kad galiojanti dalykas, aš galiu konvertuoti iš didžiosios forma? SPEAKER 21: No Ali: Ne Turėtume patikrinti. Kad mes galėtume turėti if tikrinti todėl, jei c yra didesnis nei arba lygus mažosiomis "a'- Taigi, jei pažvelgsime į diagramą, jūs pastebėsite, kad ji turi būti tarp čia, 97, ir mažąsias raides. Ir ji gali būti bet kuris iš šių, ir žingsniais visą kelią žemyn. Ir tada ten z 122. Ir ji patenka tarp šių dviejų verčių. Ar tai prasminga? Rob: Taigi, jei c yra ne tarp 97 ir 122 - ar jūs niekada neturėtų reikia naudoti tuos numerius - jei c yra ne tarp "A" ir "Z", tada jis buvo netinkamas simbolis mums į didžiąsias. Ali: Taigi kodinio pavidalo, mes sakome, kad jei c yra didesnis nei arba lygus vieno atveju mažosiomis raidėmis - wow, kaip jūs sakote, kad? Gerai, yra didesnis nei arba lygus mažųjų raidžių "a", ir ji turi būti aukščiau mažosiomis "z". Taigi ji turi būti mažesnė arba lygi mažosios raidės "z". Mes darome, kad jis yra tarp dviejų. Tada mes galime ir toliau mūsų laimingas kodą. Ką? Rob: Taigi, aš raštuotas, kad mes tiesiog nuolat klausia, jei mes atsitiktų, kad neturi mažoji raidė. Ali: "O, aš ne apie tai. Atsiprašau. Gerai, kad jei mes ketiname daryti kaip Robas sako, ir įsitikinkite, kad mes galime nuolat klausia, ką mes turėtume daryti? SPEAKER 22: [nesigirdi] ROB: Taip. Mes turėtume naudoti kažkokią kilpoje. Nes vartotojas gali įvesti kažką neteisingą neapsakomas kiekį kartų. Todėl jūs galite naudoti while cikle. Do-while cikle tikslas - tiesiog visą savo gyvenimą, tik laiko jūs kada nors naudoti do- o kilpos, kai prašote vartotojo įvestį. Taigi, tai mes kreipiamės vartotojo įvestį čia yra užuomina, kad turėtume naudoti do-while cikle. Ir kodėl taip yra? Kadangi do-while cikle visada atsitinka bent vieną kartą. Taigi, kai jūs prašote vartotojo įvestį, jūs norite, kad taip atsitiktų bent kartą. Ir tada, jei viskas buvo sėkmingas, galite nesustoti. Jei ne, eikite atgal ir paklausti dar kartą. Ali: Taigi, kitaip tariant, mes turime padaryti, skyrių. Ir todėl tai sako ką nors daryti. Taigi printf - spausdinti pareiškimą, greitą, o taip pat gauti pobūdį, ar nebandytų jiems gauti simbolį. Ir tada mes turime patikrinti, ar jis iš tikrųjų jį teisingai. Taigi mes pridėti sąlygas, tada mes sakome, o ir tada mes turime sąlyginis pareiškimas. Rob: Bet dabar mes turime pasikeitė traukinį minties. Dabar mes iš pradžių buvo pasakyti, jei c yra šiame intervale, jis galioja. Dabar mes norime pakeisti ir sako, jei c yra ne šiame diapazone, tada mes reikia daryti atsargines daryti tai, ko vėl. Ali: O, taip. Rob: Taigi, nors tai nėra tiesa, mes norime grįžti ir prašyti kitokio pobūdžio. Ar visi matote, kad? Klausimai apie tai? Gerai. Taigi dabar mes turime galiojantį pobūdį, kad mes galime didžiosiomis raidėmis. Ali: Taigi, koks bus kitas žingsnis uppercasing jį? SPEAKER 23: 32 Pridėti. Ali: Jūs pridėti - Atsiprašau, ką? SPEAKER 23: Ar ne jūs tiesiog pridėkite 32? Rob: Taip taip, o ne magiškus skaičius. Jums reikia tik vieno citata stuff. SPEAKER 23: Gerai, gerai - Rob: Bet jūs galite gauti 32 - Ali: Kaip jums, kurios numeris 32, manau, yra tai, ką mes sakome. SPEAKER 23: [nesigirdi] Rob: Taigi, mes galime sugalvoti skaičius 32 kartu - SPEAKER 23: [nesigirdi? ROB: Taip. Bet jei mes ketiname tai padaryti dviem etapais, mes padarėme anksčiau su pozicija dalykų. Taigi pozicija abėcėlėje, kad C būna, kad is c atėmus mažosiomis "A". Taigi, jei mes į mažosiomis raidėmis "d", pozicija bus 3. Ir dabar mes norime imtis dalykų į didžiąsias įvairių dalykų. Taigi dabar mūsų naujas c bus sostinės "A" plius pozicija. Taigi, žmonės mato, kaip kuris mus suveda - mes juda iš mažosiomis, tiksli gylis mes buvome į tą ribas ir žemyn į didžiąsias ribų, ir kad toli vėl į jį, kuris ketina būti tas pats personažas, bet dabar uppercased. Ali: Ir žmonių, kurie buvo sutrikę pagal tai, kaip jis tiesiog pasakė 32, iš esmės jis kartu abu jie į vieną pareiškimą. Taigi lygiavertis būdas raštu, tai sako, tu gali tiesiog rūšies pakaitalas pozicija, c Minus ", ir įdėti jį čia. Taigi, ką jis padarė, aš Don 't - char newc = didžioji raidė "A" plius c minus mažosios raidės "a". Ir dėl to, algebra, galite perkelti juos aplink. Taip pat galite pasakyti, kad jūs galite perkelti jį aplink taip char newc = didžioji raidė "A" atėmus mažosiomis raidėmis "A" plius c. Ir tai, jūs pastebėsite, jei mes einame atgal į diagramą. Mes turime didžiąsias yra 65 ir mažosiomis raidėmis, yra 97. Taigi 65-97 -32. Hi. Atsisėsti. Oh. Jūs galite sėdėti čia. Cool, gerai, nuostabus. Sveiki atvykę į skyrių. Jūs pastebėsite, kad skirtumas yra 32. Todėl tai, kur jis gavo šį skaičių. Bet tai ne, kaip sako Rob, geriausias būdas tai padaryti, nes ji turi keistai Magiškas skaičius painiavos. Rob: Jūs turėtumėte naudoti kapitalą, atėmus mažosiomis. Jūs neturėtumėte naudoti tik tiesiai 32. SPEAKER 24: Kodėl yra tai, kad dar kartą? Kodėl jums turėtų ne naudoti 32? Ali: Jei mes tai padarėme, tai būtų char newc = -32 + c. Ir jei jūs neturite bet likusios, jei tai yra visi dingo, ir jūs tik pamatyti šią eilutę, tai kaip jūs žinote, kas neigiamas 32 yra? Tai tiesiog iš vietos. Rob: Taigi jūsų programa dirbti visiškai baudą. Tai tik stiliaus dalykas. Kažkas vyksta ir skaityti savo kodą, jie, kaip ir ką 32 reiškia? Gal jie NeraŠykiTe - Aš tikriausiai ne iš karto suvokti, kad 32 būna, kad Mažosiomis raidėmis ir iš didžiosios raidės skirtumas tarp, nors mes ketiname naudoti šį faktą kitą problemą. 32 - galite palikti komentarą aukščiau sakydamas 32 yra skirtumas tarp "A" ir "a". Bet tuo momentu, kodėl gi ne tiesiog naudokite "A" ir "A", ir jūs nereikia komentarą. Ali: Tai tiesiog virš jos būdai yra daug švaresnis, stiliaus protingas. Ir taip, nes jūs tik pradedate programavimas - arba Manau, ne, nes esate įsilaužėlis EDI - niekis. Tai tiesiog geras būdas - tai geriau būtų turėti geresnę stilių. Tai lengviau skaityti kitų žmonių. Rob: Jūs niekada neturėtų reikia prisiminti, ASCII lentelę, bet kada. Jums tiesiog reikia būti galima naudoti viengubas kabutes simbolių. Turite klausimų? Ali: Visi gerai? Rob: Gerai. Taigi Kita problema yra didelė. Taigi kai kitą problema mūsų klausia - Ali: Kita problema klausia mums padaryti tą patį, bet naudoti Bitinis operatoriai. Rob: Ir, žinoma, mes dar nematėte Bitinis operatorius dar. Taigi, mes dabar diskutuoti tas. Ali: Būkite sužavėti. Jie super įdomus. Rob: Taigi reguliariai operatoriai, pavyzdžiui, x plius y, atėmus, "Times", Divide. Ali: Įveskite šį raginimą. Rob: Taip pat%, jei jūs dar nematėte, kurį galite naudoti proc simbolis. Bet mes ne naudoti šią problemą. Mes norime naudoti Bitinis operatorius. Dabar atminkite, kad mes atnešė jį į paskaitą vienas. Aš nesu įsitikinęs, jei mes aptarė dvejetainis po to. Bet atsiminkite, kad kiekvienas skaičius yra atstovaujama gerai, viskas - yra atstovaujama 1s ir 0s, dvejetainis. Taigi, tai reiškia, kad, kai aš sakau, skaičiumi 8, Man žinoma, kad tai , pavyzdžiui, 1000. Kokias Bitinis operatoriai darykime veikti Šie bitai - veikti dėl šių bitų tiesiogiai. Dabar aš nebėra aštuonerių. Aš iš 1000, ir aš noriu daryti tai, ko su individualūs bitai. Taigi Ali rašė apie Bitinis operatorius čia, bet that - Numeriu 8, mes naudojame kaip vieną iš mūsų pvz numeriais. Ir dvejetainis yra 1000. Mes naudosime kitą numerį, 5 - iš tikrųjų galime naudoti 9 ir 5. Ir 5 "dvejetainis yra 00 - 0101. Ali: Ar visi gerai? Dvejetainis stuff? Tai buvo nuo pirmos paskaitos? Rob: Taigi, net jei esate ne tik ant, kaip konvertuoti dalykų, dvejetainis, tai ne visai svarbu šią problemą. Mes jį naudoti, bet jūs turite daug didesnė tikimybė išsiaiškinti, kaip greitai pasukti dalykų į dvejetainius. Taigi, naudojant 9 ir 5, o dabar mes turime Bitinis operatorius. Oh, ir taip pat 9 ir 5, jei tai sveikasis skaičius, tada tikrai tai 32 bitai, , o tai reiškia, mes turime kaip 0, 0, 0, 0 daug kartų, tada 101 pačioje pabaigoje. Tai tik todėl, nesvarbu, ką jūs darote, 32 bitų sveikųjų skaičių. Tiesiog todėl, kad mes tik reikia keturių bitų atstovauti 9 nereiškia, kad mes ne naudojant kitus 27 bitų tik 0s. Ali: Tik patikslinti, vienas iš šių numerių, 0 arba 1 yra šiek tiek. Tai vienas iš 4 bitai. Kaip taip Rob sakė, kad mašinos laikyti juos 32. Taip, tada jie turės 32 arba 0 arba 1. Cool? Rob: Bitinis operatoriai. Pirmasis, kad mes spręsti, darykime. Taigi, jei mes 9 ir 5. Taigi, ką ir daro tai, po truputį, jis lygina dviejų skaičių bitus ir jei abu iš šių skaičių yra 1, tada jis sugrįš 1. Jei vienas yra 0, o kita yra 1, arba abu 0s, tada jis grąžina 0. Todėl jūs galite galvoti apie tai, kaip savo loginių ands. Kaip jums reikia tiesa ir tiesa return true, bet teisinga ir neteisinga, yra klaidinga. Taigi, tai tas pats, bet dabar mes susiduriame su vos bitų. Ali: Taigi, jei jums pažvelgti į tai, jūs turite 1 - jums eilutė juos, todėl, kad jis bus 1 ir 0. Ar jūs manote, kad būtų - kas turi įvertinti? SPEAKER 25: 1. Ali: Cool. Arba ne. Atsiprašau. Taigi ar tai turi prasmę? Taigi, kas yra kolektyvinis atsakymas dar kartą? Atsiprašau. Taigi, jei mes turime 1 ir 0, tada ką jūs gaunate? Rob: Taigi manote, kad nuo to, kaip tu sakai, ir garsiai. Jei turite du bitai, x ir y, jums reikia už tai, kad x ir y yra 1 įvertinti tiesa arba, kad ji galėtų įvertinti iki 1. Jei x arba y yra 0, tada jis įvertina klaidinga arba 0. LUCAS: Tai gerai, kad taip pat prisiminti, kad 1 yra teisinga ir 0, yra klaidinga. Taigi, jei turite teisinga ir klaidinga, tai klaidinga. Bet tada, tiesa ir tiesa, tiesa. False ir klaidinga, klaidinga. Ali: Mes turime teisinga ir klaidinga. So 1 ir 0. Taigi, tada vėl, atsiprašau, dar kartą? SPEAKER 25: Tai būtų 0. Taip, kietas. Ir tada mes turime 0 & 1 - SPEAKER 25: [nesigirdi] Ali: Taip. Todėl jūs visada galite apsikeitimo juos - Tada, jei turite 0 ir 0? Speaker 4: 1? 0? Rob: Taigi, tai 0. Tai nereiškia, kad abu skaičiai turi būti tas pats. Tai, kad abu skaičiai turi būti 1. Ali: Taigi, abu turi būti tiesa, kad tai būtų tiesa. Taigi, kad 0. Ir tada jūs turite 1% 1, kuris yra? Rob: Tai yra gana gera numeriai. Jie turi visas įmanomas - Ali: Geras darbas, wow. Gerai, kietas. Taigi ar tai prasminga visiems? Rob: Taigi dabar mes darome | Ir tai bus labai panašus, bet dabar vietoj x ir y, kuriems reikia , kad 1, kad ji galėtų įvertinti su vienu, dabar ji tiesiog x arba y turi būti 1. Ali: Taigi 1 | 0 įvertina - Klasė: 1. Ali: Cool. 0 | 1 vertina - Klasė: 1. Ali: Cool, tada 0 | 0 - KLASĖ: 0. Ali: Taip, ir tada 1 | 1 - Klasė: 1. Ali: Cool. Taigi, kad kaip du Bitinis operatorių. Nuostabus. Rob: Taigi dabar mes padarysime ^. Ali: mes turėtume daryti juos visus? ROB: Taip, nes manau, kad mes ketiname jį naudoti - naudojant juos visus. Ali: Gerai. Taigi - Rob: Aš manau, kad mes nereikia. Ali: Taigi ^ darbai, kad jūs turite turėti lygiai viena tiesa ir viena klaidinga. ^ - Tai išskirtinė ARBA. Taigi, dabar ne - jei x ir y yra už 1, tai dabar klaidinga. , Kad yra skirtumas tarp ^ ir | tai, kad AR, jūs galite turėti, jei x yra true arba y yra tiesa, tada mes geri. Ne, ^ sako, kad jei x yra tiesa, y turi būti klaidinga, arba dar tai nėra tiesa. Ar turite klausimų? SPEAKER 26: [nesigirdi] Ali: Taip. Tai tipo panašus. ROB: Taip, todėl, kai jūs gaunate to žemo lygio aparatūros stuff, tai yra Veiklos rūšys jūs susiduriame su. Techninės įrangos lygiu, jums tik su bitais. Jūs neturite susiduria su numeriais. Ali: Gerai, ^, arba, jei turite 1 ^ 0, ką tai turėtų įvertinti? Klasė: 1. Ali: Cool. Jei turite 0 ^ 1? Klasė: 1. Ali: Cool. 0 ^ 0? Cool. Ir tada 1 ^ 1? KLASĖ: 0. Ali: Šaunu, nuostabus. Kitą - Rob: Aš manau, kad tai yra viskas, mes turime kovoti su. Mes tik padaryti. Ali: tik laiko, mes turime padaryti, - Rob: O, kad bus per pastaruosius problemos. SPEAKER 27: Palauk, dar kartą? Ali: Atsiprašome, koks buvo klausimas? SPEAKER 27: Ar galite paaiškinti, kad dar kartą? ^? SPEAKER 27: Exclus - Taip. Ali: Taigi, kas yra išskirtinis ar reiškia, kad ten turi būti tik viena tiesa ir vienas neteisingas, todėl vienas 1 ir 0, palyginti su AR, jūs galite turėti - vienas iš jų turi būti tiesa, ar jie abu gali būti tiesa, nes jis įvertinti true. SPEAKER 27: Taigi 0 ir 0, būtų klaidinga. Ali: Taip. Bet jei jūs turite 1 | 1, kad būtų įvertinti true. Bet jei jūs turite 1 ^ 1, kaip mes padarėme, kad vertina false. , Nes tai ne tik vienas yra tiesa. Rob: Ir tai gali arba negali būti naudinga, bet pranešimas, kad ^ lygus tik atsižvelgiant | minus. Ir jūs iš tikrųjų manote apie tai šiuo būdu. ^ Yra tik Oring viskas kartu, bet imant bet bitai abu buvo tiesa. Taigi ir grąžina viską, kur abu buvo tiesa. | Grąžina viską, kai vienas ar abu buvo tiesa. Taip atimant kad iš | suteikia jums ^. Ali: Turite klausimų? Tai buvo daug informacijos. Kiekvienas geras? Rob: Mes galime eiti į kitą problemą, per artimiausius velniop kiek laiko tai yra? Jiems nereikia tai iki kito problemos. Ali: Aš maniau jis buvo tai viena. Rob: Tai ne. Ali: Ar tikrai? Rob: Taip, aš teigiamas. Ali: Kodėl mes pradėti daryti kitą problemą? Problema yra tai, dar kartą, jį pakeisti iš mažąsias raides į didžiąsias, ir tai laikas naudoti Bitinis operatorius. Rob: Taigi, mes - pradėkime su dvejetaine "A", sostinės "A", kuris yra 65 metai. Taigi dvejetainis - todėl "A" = 65, =, dvejetainiu - Aš ruošiuosi bałagan į 0s - Ali: Taigi ar tai prasminga visiems? Taigi, 1, be 2s, ne 4s, ne 8s, ne - nėra 16, ne 32s, ir tada vienas 64. ROB: Taip, aš manau, kad vienas per daug 0s. Ali: Atsiprašome. Rob: Gerai, kad mes turime 64 rinkinį, ir mes turime 1 komplektas ir derinant šiuos kartu, mes gauname 65. Ali: Cool pupelės? Rob: Taigi dabar, mažosiomis raidėmis "a'- pastebėsite, 97 - kas yra skirtumas tarp 97 ir 65? SPEAKER 28: 32. ROB: Taip. Taigi, tai 32, kuri yra jo paties tiek, kad bus 110.001. Ir tai bus tiesa visų galimų simbolių. Taigi, jei mes manome, "D", kuris bus 68, tai bus 1.000.011. Ir tada mažosiomis raidėmis "d" bus 68 plius 32, kuris yra 100, kuris yra bus tas pats, kad tai buvo, tiesiog prakeiktas 32 kartą, tad 1.100.011. Taigi skirtumas tarp didžiųjų ir mažųjų laiške yra tiesiog prakeiktas kad 32-bitų pozicija. SPEAKER 29: Ar ne 1.000.100? ROB: Palaukite, tai 100 - ką aš padariau negerai. Tai buvo netiesa. Aš galvoju, kad tai buvo 3 skirtumas, kad tada aš tiesiog pakimba 3 dvejetainis pabaigoje. Tai turėtų būti teisingas. Ali: Ačiū. Geras, nurodanti, kad iš. Tai buvo aštrus. Viskas gerai, tai aišku, kad žmonės? Rob: Skirtumas tarp didžiųjų ir mažųjų versija visada tik bus 32, ir todėl visada bus vienas tiek , kad turi būti apversta pakeisti tarp šių dviejų. Ali: Taigi, tuo atveju, žinant skirtumą tarp kapitalo ir mažosiomis yra geras dalykas. Ne kode, bet konceptualiai bent tai gerai. Taigi jus vaikinai gali eiti į priekį ir kodas, kuris erdvių dabar. Ar mes turime tiesiog aptarti tai? Rob: mes galime tik aptarti. Nežinau. Jus vaikinai galite pabandyti. Kalbėti tarp sau šiek tiek. Mes suteiksime jums galimybę kodas IT. [Tarpines BALSAS] Ali: - yra cool SPEAKER 30: Tai kaip hacker komedija. Ali: "Taip, mes tiesiog sakau naujienas, vyksta per ją. Rob: mes ir sugrįžome. Ali: Tai tipo keista. Aš jaučiu, kaip mes turėtume CS50 naujienų stotis ir galėtume sėstis, kaip šis. ROB: Hacker Naujienos. Ali: Hacker News 50. Ali: Nesivaržykite užduoti klausimus, jei jūs painioti. Rob: Ar kas nors pakimba? Ali: Taip, tai yra geras dalykas. Ali: Palaukite, jūs įstrigo savo kėdės? Oh. Man buvo mažai susijęs. Rob: Nes aš tiesiog suprato, kad mes ketiname norite kitas Bitinis operatorius. Nes dabar, tegul tiesiog konvertuoti į didžiąsias į mažąsias. Ali: Atsiprašome, Ar visi gauti kad skelbimu? Mes ketiname pereiti nuo didžiųjų raidžių į mažąsias. Rob: Tada mes aptarsime mažosiomis raidėmis į didžiąsias teisę po to. Oh, ne. Mes turime Ši klaida, kuris, manau, mes niekada bandė paleisti. , Kuri yra tik tai, kad char c turi būti deklaruojamos už kilpos, nes jos taikymo sritis yra apribota į kilpą. SPEAKER 32: Šiuo atveju, tai neteisinga naudoti numerį? Rob: Ech, tu nereikia. Jei aš garantuota, kad kapitalo "A'- arba mažosiomis raidėmis" a "minus kapitalo" A " buvo lygiai vienas bitų, bet, kad jūs neturite žinoti jo 32 - viskas veikia lygiai taip pat gerai, jei ji buvo 16 bitų, kuris buvo apversta - arba ne, aš manau, kad jis wouldn't arba 64 bitų buvo apversta, galbūt. Tačiau jums nereikia naudoti 32. Vietoj to Jūs galite naudoti mažąsias raides "minus kapitalo". SPEAKER 32: Gerai. Ką jūs galite padaryti, jei manote, kaip jūs rašote per daug, galite nustatyti viršuje. Todėl jūs galite būti, pavyzdžiui, int skirtumas = mažosiomis "minus kapitalo". Ir tada galite įvesti, o ne skirtumą. Štai galioja. Bet tik naudojant yra natūra, kurios numeris 32 - SPEAKER 33: Nors tai, nes tai, kad jis 32 bitų? Ali: Taip. Rob: Gali būti - vienintelė garantija, mes turime padaryti, yra ta, kad skirtumas tarp mažosiomis ir didžiosiomis raidėmis yra vienas bitas. Neturėtų būti svarbu, kad tai atsitinka būti 32 bitų, kad apversta. Dėl laiko sumetimais, mes pradėsime vyksta per. Tai gerai, jei jūs dar nebaigėme. Nesijaudinkite dėl to. ROB: Darant prielaidą, c raidė - mes neturime manyti, c raidė. Mes žinome, c yra didžioji raidė po šio while cikle - do-while cikle. Taigi, tai reiškia, kad jis atrodo kažkas panašaus į tai "A". Taigi, jei norime, kad tai "Tai", ką mes turime daryti? Taigi, kaip mes konvertuoti ir apversti tiek? Ali: Kaip mes jį apversti? Rob: Taigi mes žinome, mes norime apversti 32 bitų. Taip, kad bus padaryti "a" minus "A", arba galėtume rašyti 32, bet - darn, ji yra atvirkščiai. Ali: Gerai, kad Rob čia Apskaičiuojant šį skaičių, magiškas skaičius 32. Taigi jis išsiaiškinti, kur, kad šiek tiek pasukt plotas būtų. Ir tada, ką mes įdėti, kur klaustukai? Rob: Kaip mes apversti, kad tiek? Iš didžiosios raidės, jis yra 0, ir mes norime tapti 1. SPEAKER 34: |. ROB: Taip. Todėl tai mums sako, mes priimsime "A". Mes Oring su 0 - 1000 - ir kad = tai. Ali: Ar tai prasminga visiems? Mes galime eiti per jį po truputį, jei norite. SPEAKER 35: Ar esate [nesigirdi? Ali: Kur minuso ženklas? ROB: "O, tu kalbi čia? Ali: O, taip. Rob: Taigi, manau, tai mums. Galėtume pasakyti, 32, ir dabar mes tiesiog Bitinis operatorius. Ali: Mums nepatinka magija numerius. Mes neketiname to daryti. Be to, aš manau, kad mes tiesiog reikia naudoti Bitinis operatorių - SPEAKER 36: Jei naudojate ^ a, gausite 32? SPEAKER 37: Taip, manau, Rob: Taip jums. Ali: Tai, kaip jūs tai darėte jį vyksta iš kapitalo į mažąsias. Dabar gali kas nors pasakyti, kodėl Rob ir aš pakeičiau greitai ir kaip mes nuėjome didžiąsias mažosiomis raidėmis, o ne mažųjų didžiąsias, kaip mes padarėme prieš? Ar kas nors turi kokių nors idėjų, kodėl tai gali būti sunkiau? Rob: Taigi, mes norime padaryti - Ali: Taip, eiti į priekį. SPEAKER 38: | subjektas buvo tik tikrai gera pridėti. Ali: Taip, tiksliai. Rob: Taigi, ką mes norime padaryti mažosiomis raidėmis didžiąsias bylą, konvertuoti šį "a' todėl mes norime kai kurių skaičių, čia ir naudoti šiek tiek operatoriui, kad jis ateina iš kapitalo A. Mes dar tikriausiai naudojant 32 kažkaip, bet dabar, kaip padaryti mes gauti šią išeiti į tai? Taigi c oh, aš vis dar norite, kad per Ali: Taigi dabar, jei mes konvertuojant iš mažosiomis raidėmis į didžiąsias vėl, tada mes padaryti ^ operaciją, kaip jus vaikinai sako. Rob: Yra ir kitų būdų, galite daryti tai, ko. Bitinis operatorių daug galų gale yra labai lengvai apibrėžiami, kalbant kitų Bitinis operatorių. Taigi aš buvau ketinate nenaudoti ^ arba iš viso, bet ^ dirbo puikiai baudą. Ali: Gerai, kad mes ketiname eiti paskutinę problemą, kuri yra pagrindinė paskutinė problema yra konvertuoti kažką į dvejetainius. Taigi, pavyzdžiui, jūs turite 50, ir tada jums konvertuoti jį į dvejetainis, kuris yra 110.010. Ir manau, kad jus vaikinai visi žinome apie dvejetainis iš paskaitos. Ir jūs taip pat turėtų įdėti bet pagrindinį 0s į jį. Rob: Jūs galite ignoruoti, kad dalis dabar. Pirmojo prasiskverbimo, jūs galite tai padaryti taip, kad esame pirmaujanti 0s. Ir tada mes galime pakeisti, kad neturi lyderio 0s, jei mes turime laiko. Ali: Taigi nesijaudinkite apie tai. Tiesiog pabandykite gauti dvejetainiu. Gera vieta pradėti būtų - Rob: Mums reikia prašyti sveikasis skaičius. Ali: Oh yeah, tai gera. Mes galime pradėti su tuo. Todėl jūs galite pakeisti eilutę. Taigi vietoj kurio nors požymio, dabar mes susiduriame su sveikaisiais skaičiais. Cool? Rob: O dabar tai, kas mūsų do-o būklė bus? Jis klausia ne neigiamas sveikasis skaičius. Ali: Kada mes norime išlaikyti neraginant vartotojo kažkas? , Kai jis mažesnis nei 0. Ali: Teisė. Rob: Nors aš yra mažesnis už 0. Ali: Dabar mes norime konvertuoti. Ar jus vaikinai turi kokių nors idėjų, ką daryti? Bet kokie inklings? Taip. SPEAKER 39: Ar mes turime ją konvertuoti, ar mes galime tiesiog atspausdinti kai 0s ir 1s kad būtų teisingas skaičius? Galima padaryti už linijos ir suskaičiuoti iš jėgų, 2? Rob: Taip. Jums nereikia konvertuoti i savo dvejetainiu - dvejetainis i netelpa viduje i. Jums tiesiog reikia spausdinti dvejetainis i. Ali: Kitaip tariant, jums nereikia eiti iš dviejų jėgų. Rob: Nes aš jau saugomi kaip binaries, todėl jūs neturite reikia konvertuoti jį į dvejetainį. Tiesiog eiti per savo dvejetainį skaičių, ir spausdinti. Ir jūs ketinate reikia naudoti Bitinis, nes jūs norėsite pažvelgti į faktinės bitai. Jums nereikia naudoti Bitinis, bet atlikite. Ir kad iš tikrųjų - galite tiesiog padaryti galias du padauginus iš 2. Mes pereiti per pastaruosius du dvejetainiai Bitinis operatorių, tai vienas. Taigi, kai jūs imtis - Ali: Ar jūs einate per juos abu? ROB: Taip. Taigi eikime su 9. Taigi 9 Left Shift 1 - kairysis SHIFT priemones tiesiog perkelti visus bitus į kairę ir įterpti 0. Taigi mes žengiame visus 9 bitus į kairę pozicija, kuri suteikia mums - Taigi, pastebėjote, pasikeitė viskas paliko vieną, ir įtraukė 0 dešinėje pusėje. Jei būtume pasislinks kairėn du, mes norėtume perkelti viską, kas liko du, ir įdėkite du 0s užpildyti spragas. Klausimas? Ali: Taigi keičiamas dešinėn ar panašų dalyką. Jei turite 9 tinkamą perėjimą 1 tada jūs tiesiog perkelti viską perkelti į teisę, jūs prarasite skaitmenų, todėl 100 vietoj. ROB: Taigi, jūs tai gerai, kad jūs prarandate tiek, kad atsitiko, kad visi į dešinę. Yra įvairių tipų dešinės pamainomis, tačiau iš esmės jūs galite galvoti teisę perkelti kaip tik dalijant iš 2. Kairysis SHIFT, kaip jūs galite galvoti padauginus iš 2. Taigi, jei jūs konvertuojami tai - jei konvertuojami 9 perėjimą 1, kuri yra lygi 10.010, jei jūs iš tikrųjų nuėjo per dviejų ir suprato, kas tai buvo, tai būtų tik 18. Mes tiesiog padauginti iš 2. 1001 Left Shift 2 bus 36. Mes padauginkite iš 4. Gerai, kietas, todėl tai patogu Bitinis operatorius už šį vieną. Daugiau painiavos? Ar jus vaikinai nori jį išbandyti? Ar mes galime tiesiog pereiti teisę ir pradėti jį? Rob: Mes tikriausiai turėtų pereiti į dešinę. Ali: Taip, gerai. Rob: kartu vaikščioti per ją. Ali: Na aš tiesiog eiti į jį. Taigi, kaip jis sakė iš pradžių, mes ketiname tiesiog pereiti per truputį. Taigi, mes ketiname reikia kilpą. Ar kas nors turite geriausią rūšies kilpos eiti per šią idėją? Mes turime, o kilpos, o kilpos, kilpas. SPEAKER 40: do-while cikle? ROB: Taigi prisiminti, ką aš sakiau prieš maždaug, mes tik naudojant do-o kilpos gauti vartotojo įvesties. Jūs niekada beveik niekada naudoti juos kam nors kitam. Ali: problema su do-o kilpos jis kažką daro, kol ji tikrina, ar sąlyga. Taigi, galima daryti ką nors bloga - patinka, skauda - padaryti kažką, kad nėra įmanoma. Taigi, jūs norite patikrinti pirmiausia. Rob: Yra daug atvejų, kur Jūs galite naudoti do-o kilpos, bet žmonės nereikia tikėtis, kad naudoti juos, nebent tai naudotojo įvesties. Taigi, mes turime naudoti mūsų do-while cikle gauti i. Kiek kartų mūsų kilpa ketinate norite kilpa? Mes norime, palyginti su kiekvieno kito iš i bitų kilpa. Kiek bitų yra i? SPEAKER 41: 32. Ali: Taip. Rob: Taigi yra 32 bitai. Mes nenorime pasakyti 32. Mes vietoj noriu pasakyti, sizeof kuris, ar matei, kad klasėje dar? Ali: Ne. Rob: Kodėl tai pasakyti, kad - sizeof (int) kartų 8 - Ali: Taigi, sizeof SPEAKER 42: [nesigirdi] Ali: Įdomu. Taigi, sizeof yra built-in C funkcija, kur jis tiesiog jums pasakys Bitų skaičius - Rob: baitų. Ali: baitų, sorry - baitų skaičius, kad kintamasis turi laikyti vertę. Todėl manau, kad jis perėjo į klasę, tada, int yra 4 baitų gal. Cool? Rob: Bet jums nereikia žinoti, kad int yra 4 baitų. Turėtumėte galėti pasakyti - jums reikia naudoti sizeof (int) gauti 4 baitai. Ir kad iš tikrųjų svarbu, kai kurių dalykų. Int gali būti 4 baitai. Int kitame kompiuteryje, gali būti 8 baitai. Taigi jūsų programa neveikia tame kompiuteryje, nes jums sunku koduojami 32 bitai, kai tame kompiuteryje atsitinka būti 64 bitai. Ali: Taigi jūs turite visą bitų skaičių, kad jūs norite pakeisti. Rob: Ir tarp baitas ir šiek tiek skirtumas yra tas, kad 8 bitų baitas. Taigi, sizeof (int) grąžina 4 baitų, tada mes turime daugintis, kad 8 iki 32 bitų. Ali: Gerai, kad mes žinome, ne daugiau ir mes žinome, kad norite pereiti nuo - mes norime eiti per juos visus. Taigi, mes norime eiti nuo 0 iki numBits. Taigi, ar kas nors žino, kaip rašyti, kad kilpa? Kas nors? SPEAKER 43: [nesigirdi] Ali: Taigi jūs norite feed nulinis tiek I bitų, antra tiek, trečia tiek, visą kelią iki numBits. Max skaičius bitai, kad jūs galite gauti. ROB: Kas bendra linija, mes naudojame tai, ką norime padaryti kažką x kartų? Ali:. Tobula. Taigi, mes turime. Ir tada mes sukurti Iterator, kuris nesiruošia būti aš. Rob: j. Ali: J = 0. Taigi pradėsime 0. Ir tada mes einame turėti sąlygą, kad įsitikintumėte, o jūs ji vyksta kiekvieną kartą - [Tarpines BALSAS] Rob: j. Ali: j mažiau nei numBits. Taigi mes neturime norite padaryti, faktinis lygus vienetui, nes jie numBits iš viso, ir mes prasideda nuo 0. Taigi, mes iš tikrųjų ketiname turėti SPEAKER 44: oh. ALI indeksai nesibaigia ties numBits minus 1. Rob: Mes ženklinti bitai 0 iki 31 nereikia ženklinti juos 1-32. Ali: Ir tada mes einame prieaugio kiekvieną kartą vieną, nes mes norime patikrinti kiekvieną. Taigi, mes pereiti J + +. SPEAKER 45: Kodėl jūs tai daro? SPEAKER 46: Kodėl jūs einate per kiekvieną bitų? Rob: Taigi, mes norime eiti per kiekvieną šiek tiek ir - Tarkime, turime tam tikrą skaičių. Ali: 68. ROB: Mes galime naudoti 68. Taigi dvejetainis bus 100.100. Taigi tai yra viduje i ir mes norime eiti per kiekvieną iš šių bitų. Tai yra 1? Spausdinti 1. Ar tai 0? Spausdinti 0. Tada mes einame į kitą bitų. Tai yra 1? Spausdinti 1. Yra 0? Spausdinti 0. Ali: Cool, gerai. Dabar mes į teisingą indeksą, kur, kad šiek tiek. Kaip mes galime patikrinti, ar konkretaus? Tarkime, kad mes ne j = 0, todėl mes norime patikrinti 0, indeksas šiek. Taigi, šiuo atveju, tai vienas. Taigi dabar, kaip mes einame apie įregistravimą - O, tai būtų šis. ROB: Taip. Ali: Atsiprašome. Kaip mes eiti apie tikrinimą, kad vienas, tam tikra prasme? Kaip mes patikrinti, ar ji yra 0 arba 1? Na let's - KLASĖ: 1? Ali: Ir? Taip. Rob: Tarkime, mes jau turime 1. Tuomet šis &, tai grįš, ar jis buvo tik 1 arba 0. Ali: Taigi, mes galime eiti. Ir mes galime padaryti, kaip jus vaikinai sakė, daryti & funkciją. Rob: int - kaip aš noriu pasakyti, tai - isOne = i. Ir pirmą bit mes atsitiktų būti ieškote, mes darome i & 1. Dabar, ką mes ketiname norite ir pagal antrą tiek? SPEAKER 47: 2. ROB: Taip, antra, kad mes 2. Ali: Jūs pastebėsite, kad 1 perėjo į kairę. Taigi mes sužinojome jokių Bitinis operatorių padaryti šią funkciją? Rob: Kitą - Ali: Taip, teisus, tiksliai. Todėl Left Shift. Užuot nuolat tikrinti su 1, mes ketiname pereiti. Ir kiek kartų mes ketiname pereiti? Jei mes patikrinti 0. 1 tada mes ketiname perkelti virš nulio. Taip, tiksliai. Taigi jūs kairysis SHIFT jį j. Tobula. Taigi dabar mes žinome - mes turime tai, jei ji yra 1 int, o tada - Rob rūšies apgaulės čia - ir todėl dabar jis vyksta į priekį ir jis tiesiog pasakyti, kad jei ji iš tikrųjų yra 1, nes 1 vertinamas kaip tikra, kad mes ne turiu pasakyti, ISF isOne lygus 1 - todėl, jei isOne, tada mes spausdinti 1, kitaip mes spausdinti 0. Rob: Taigi, mūsų programa turi bendrą klaidą. Na, klausimų dėl šio pirmo. SPEAKER 48: Ar jūs kada nors įdėti isOne viduje keturių operacijos dalį ir tada jį perkelti save kaip paskutinę dalį? Taigi isOne lygus 1, o po to - Rob: Taip, galite. Mes galime iš tikrųjų rodo, kad kai mes ištaisyti klaidą, kad aš apie aptarti su jumis visais. Pastebėsite, kad mes ketiname užkliuvę. Atsižvelgiant į tai dvejetainis, mes pradedame su nulinis tiek. Jei jis yra 0, tada mes spausdinti gerai, tai 0, todėl mes spausdinimas 0. Tada mes einame į antrąjį šiek tiek. Ji yra 0, todėl mes spausdinti 0. Tada mes einame į trečiąjį bitų. Tai yra 1, todėl mes spausdinti 1. Ali: Taigi vyksta atgal. Taigi, kaip jūs vaikinai rodo, kad mes negalime išspręsti, kad ir eiti į kitą pusę? SPEAKER 49: [nesigirdi] ROB: Taip. Taigi vietoj vyksta nuo 0 iki numBits, mes pereiti nuo numBits bitų 0. Ali: Taigi [nesigirdi] visada galite eiti į kitą pusę. Rob: NumBits minus 1, nes tai yra paskutinis nubmer - Ali: Kadangi jis eina 0-31. Ir tada mes visada įsitikinkite, įsitikinkite, kad jis didesnis už 0, kad jums nereikia eiti per toli į dešinę. Ir tada jūs visada atimti nuo 1 iki eiti į dešinę. Rob: Taigi dabar mes turime atvirkštinės kilpa, ir šis skaičius yra atgal į spausdinimo į teisingą kelią. 50 GARSIAKALBIS: Ar ne jūs turite pakeisti shift dalykas? Ali: Taigi ne. Rob: Mes darome tą patį tiksliai operacijos, išskyrus dabar atvirkštine tvarka. Taigi, o ne daryti perjungimui numBits minus 1 gauti, ką tai šiek tiek yra, o ne daro, kad paskutinis, mes tiesiog tai padaryti pirmiausia. Keičiant tai čia, mes pakeisti viską, kas tvarka vyksta viduje. Bet mes nenorime, kad pakeisti tai, kas vyksta viduje ne visi. Ali: Ar tai prasminga? Perdirbti? Gerai, kad Ar kas nors turite kokių nors kitų konceptualius klausimus? Ali: Prieš mes einame į jo požiūriu, kuris yra - Ali: Gerai, gerai eiti. Rob: Vietoj to, naudojant j yra mūsų - , o ne naudojant j visada perkelti, pavyzdžiui, kairysis SHIFT j, manau, kad tai, ką jūs sakote, yra panašus, iki j patį vartojimą. Taigi, j - Manau, kad tai yra sunku - j = 1 << 31. Kad tai, ką aš noriu? Manau, kad tai << 31. J> = 1. j >>, >> isOne, i ir j - , todėl dabar, o ne naudojant Ali: Jūs nuolat juda j užuot indeksas ją patikrinti. Tai nereiškia, kad blogai. Mes naudojame panašaus pobūdžio logika. Taigi, jei jūs einate atgal - oh, bet jis ketina prarasti. Gerai, jūs esate tik ketina įveskite jį dar kartą. Jei pastebėjote, kad mes turime 1 << j kartų skaičių, ir mes buvome pokyčio j kiekvieną kartą viena padala, bet šį kartą, o ne jie daro j prieaugis viduje už linijos viršuje. Taigi vietoj to, visada juda žemyn - Rob: Pats pirmas iteracijos už linijos, mes turime j yra 10000. Kitą iteracijos už linijos yra 01.000. Kito pakartojimo, kad. Ir 1 yra tik ketina išlaikyti dauginamosios žemyn, kol mes Hit labai pabaigoje, kur dabar tai tik. Kit ˛ a, 1 bus atstūmė, ir j nebėra didesnis nei arba lygus 1. Taip pat galite įdėti didesnis nei 0, tas pats skirtumas. Ir tada viskas. Turite klausimų? Taip. SPEAKER 51: [nesigirdi] Rob: Štai tas pats, kaip ar jūs esate matę J + = 3? Taigi tai yra j = j + 3? Jūs galite padaryti, kad praktiškai bet kokio operatoriaus C. Taigi j >> = 3 lygi j = j >> 3. Taip, kad veikia taip pat su Bitinis operatorių. Ir aš neturėtų įdiegė 31. Aš turėjo įdėti numBits - 1. Ali: Yay, No Magic numeriai. Gerai, tai 4:00, nors, todėl, jei jus vaikinai turi eiti - bet tai prasminga? Jūs vaikinai turite kitų klausimų? Rob: Taip pat buvau ketinate mesti, nes jei mes norime - jis aptarė trijų komponentų operatorių ne visi? Ali: Ne Viskas gerai. Rob: Taigi jums gali pažvelgti į jį kitą kartą. Ali: Gerai, tikrai? Dabar jūs tik rodo off. Rob: ne, dabar it's - tai, ką gauna žmonių ima tuo domėtis, o dabar jie bus eiti pažvelgti į jį. Taigi dabar, kad daro tą patį vieną žingsnį. Taigi, pirmiausia patikrinkite, yra i & J 1? Ar tai tiesa? Jei taip, spausdinti 1, kita, spausdinti 0. Ali: Bet tai kitas būdas yra visiškai gerai, kaip gerai. Jis turi tą pačią logiką. Taigi, tai ne taip, kaip yra - Rob: Šiuo metu mes galime gauti atsikratyti tų klamrami, nes tai tik vienos eilutės už linijos. Ali: Gerai, kad ar tai prasminga? Kad buvo natūra šuolis. Bet tai buvo tiesiog rūšies sintaksė, dar labiau. Cool? Visus kitus klausimus? Rob: Viskas gerai. Ali: Gerai, kietas. Ačiū, kad atvykote į skyrių.