[Powered by Google Translate] [ELECTRONIC STAATTINEN ÄÄNET]
ROB: Okei, joten mitä me juuri tuonut teidät on CS50 Spaces.
ALI: Odota takaisin ylös.
Tervetuloa jakso!
ROB: Tervetuloa jakso!
ALI: Yay!
ROB: Supersection!
ALI: Olen Ali ja tämä on Rob.
Okei, nyt me kerromme Spaces.
ROB: Mitä me juuri tuonut teidät on CS50 Spaces.
Saat käyttää tätä paljon Osioidesi tällä lukukaudella.
Periaatteessa olemme jo lataat laitetta.
Ja voit ajatella CS50 tilat kuin web-käyttöliittymä puhu laitteen
että meillä on joitakin palvelimen jonnekin.
Joten voit ajaa koodia tässä käyttöliittymässä, ja me
miten tehdä asioita.
Voit myös katsoa koodin muita ihmisiä osassa, ja -
Ali: Ja kuten jotkut ovat huomanneet, voit keskustella ihmisten puolella.
Ja me kaikki näemme sen myös, joten on jännittävää.
Tule, tule istumaan.
Istu.
>> ROB: Niin, pääluokat ovat -
ALI: Ei, ei, te voi tulla.
ROB: § tulevat olemaan paljon enemmän vuorovaikutteinen tällä lukukaudella.
ALI: Oh, hän on kuin -
Oh.
Okei, viileä.
Joten jos kaverit ovat juuri tulossa, voit mennä tätä linkkiä, jos saan
siellä, tuolla.
Emme voi oikeastaan ​​kirjoittaa, koska ei ole aluksella tilaa, mutta tätä linkkiä
täällä, mene, että tietokoneiden ja annat CS50
Spaces, mikä on aika cool juttu.
Okei.
Onko sinulla ongelmia?
ROB: Näin löydät ongelmat -
Meidän on kyettävä kirjoittamaan tätä jonnekin.
Joten jos menet cs50.net/psets ja tämä on hakkeri supersection -
ja menet Hacker Edition PSET yksi, katso erittely
jonnekin alas sivulla -
>> ALI: Joten periaatteessa, mutta Rob näköinen, mitä aiomme tehdä
jakso tänään on osa ongelmista -
ROB: - sivulla kahdeksan.
ALI: - kutsutaan osa ongelmista -
ROB: § kysymyksiä.
ALI: Anteeksi, jakso kysymyksiä.
Ja ne ovat mitä aiomme mennä yli -
ne ovat mitä aiomme mennä yli tänään osiossa.
Ja me aiomme koodata sen CS50 tilat, ja toivottavasti se toimii.
Ja voimme vain puhua niiden läpi.
Ja te voi kysyä aina tuntuu -
>> ROB: Eli tämä alkaa olla yhteinen asia useimpien psets.
Mielestäni tämän kanssa, se sanoo et on luovutettava näihin kysymyksiin tuumaa
Mutta ajatus on, että nämä kysymykset saatetaan PSET, ja voit tulla
osioon on näihin kysymyksiin vastaukset.
Tai jos et tule osiossa voit vastata niihin omalla tai saada
auttaa toimistossa tunnin tai jotain.
Mutta nämä ovat kysymyksiä, jotka on tarkoitus prep teitä ongelman asetettu.
Ja hakkeri painos, paljon kysymyksiä voi olla juuri noin
laajentaa nykyisen CS tietoa.
ALI: Jep, aika paljon.
>> Okei, on kaikki siitä CS50 tilat?
Hei, tule sisään
SPEAKER 1: Voimmeko nähdä URL vielä kerran?
Rob: Joo, tämä on helpompaa, kun olet todella Osioidesi, ja
oman TF voi vain lähettää sinulle URL etukäteen.
ALI: Yay, istu.
On paikkaa täällä.
Edessä ei ole niin paha.
Mitä?
Joten, CS50 Spaces, olemme sinne.
Onko kellään mitään kysyttävää ennen kuin pääsemme - mitä?
ROB: Ei ole edes mitään liitu.
[Kuulumattomissa]
ALI: Anteeksi.
Voisit käyttää kynnet?
Olemme hyvin matalan teknologian tilaa hyvin high-tech luokka.
Okei, on jokainen sellainen hyvä?
Onko kellään vielä kysymyksiä siitä?
Kuten aiemmin sanoin, aiomme käydä läpi osa kysymyksistä
PSET vaatimukset.
Eli siellä on vain pari ongelmaa, että aiomme
koodata ylös CS50 Spaces.
Onko kaikki hyvin?
Okei.
Hyvä?
ROB: Onko sinulla kannettava tietokone?
ALI: Voit hengailla Lucas.
Hän istuu vieressäsi.
Liimaus aikaa.
>> ROB: Niin, aloita ensimmäinen ongelma?
Ali: Joo.
Voimme aloittaa.
Haluatko minun -
Voin mennä.
Joten menemme PSET silmälasit.
Voi, miksi se on -
ROB: Control.
ALI: Okei, joten me menossa vastaus näitä asioita samoin?
ROB: Ai, joo.
So -
ALI: Voi, ei kaikkien katsella Robin starring shortsit?
Okei, viileä.
ROB: Joo, en usko meidän välttämättä odoteta sinulla on
Katselin sitä ennen tuloaan tämän jakson, mutta voimme keskustella niistä
ongelmia ennalta, koska ne ovat osiossa kysymyksiä asioita.
Joten jos et ole katsonut sitä, älä huoli.
Ne, jotka ovat voi yrittää vastata.
>> Joten, ensimmäinen kysymys, mikä on pre-prosessori, miten # include
liittyvät?
Joten ei kellään vastausta siihen?
ALI: Voitte puhua sitä.
Toki, mene eteenpäin.
SPEAKER 2: # include on valmiiksi kirjoitettu koodi, ja sen sijaan
kopioimalla sen ja liittämällä sen oman ohjelman, jonka vain sanomalla kuuluu se,
pre-prosessori tietää, että se on olemassa ja että se pitäisi lisätä se
myöhemmin tai ennen kuin mitään muuta tapahtuu.
ALI: Joo, mahtava.
Cool.
ROB: Eli kun olet itse ohjelmaa koostettaessa, pre-prosessori on tällä
Ensimmäisessä vaiheessa.
Compilation tapahtuu neljän suuren askeleen.
Joten pre-prosessori on ensimmäinen iso, ja se on tämä kaveri, joka menee
läpi ja etsii kaikki nämä ristikkomerkkejä.
Ja kaikki linja, joka alkaa hash, pre-prosessori katsoo sitä ja näkee
jos se voi käsitellä sitä.
Joten # include kertoo pre-prosessori etsiä joitakin cs50.h
tiedosto ja kopioi ja liitä sen sisältö tähän tiedostoon.
Joten voit todella # include mitä haluat, mutta se on enimmäkseen olemaan
. H tiedostoja.
Emme ole mennyt # define vielä, joten ei ole väliä.
ALI: Joo, olemme hyviä, että yksi.
Onko kellään mitään kysyttävää siitä?
Olemmeko hyviä?
Seuraava kysymys.
>> SPEAKER 3: lyhyt, oli jotain. C samoin?
Onko tuo asiaan vai onko se merkityksetöntä?
ROB: Noin. C pre-prosessori?
SPEAKER 3: Joo, tai tein jotain?
ROB: Niin lyhyt on saattanut näyttää esikäsittelyvaiheen tiedosto ja
syöttöä sen toiselle. C-tiedoston, joten voit etukäteen käsitellä tämän tiedoston -
kun vain ajaa kuten tekevät hei tai clang hello.c, teet kaikki
kokoaminen yhden ison askeleen.
Mutta voit nimenomaan tehdä se sen eri vaiheita.
Joten ensimmäinen voit etukäteen käsitellä sitä.
Sitten voit koota, voit koota, ja sitten voit linkittää.
Saamme näihin muihin.
Mutta esikäsittelyä, et sellaista pre-prosessin, ja sitten se menee
toinen. C tiedosto.
Koska esikäsittely ei oikeastaan ​​muuta mitään.
Se on vain nippu kopioi ja liitä.
Voisit manuaalisesti kopioida ja liittää sen itse.
ALI: Ja on selvää,. C tiedosto on C tiedosto, joten se on
kirjoitettu C-koodia.
Niin se menee C-koodin C-koodia.
Olet vain lisäämällä koodin punta.
ROB: Kun esikäsitellään, se on silti kelvollinen C tiedostoa.
SPEAKER 3: Okei.
ALI: Hyvä kysymys.
Pidän siitä.
Okei, seuraava kysymys.
>> Mitä kääntäjä?
Kukaan?
Kyllä.
SPEAKER 4: Se muuttaa esikäsiteltyyn koodi kokoonpano.
ALI: Perfect.
ROB: Kyllä.
ALI: Cool.
ROB: Niin, että mitä kääntäjä tekee nimenomaan
kun käytämme clang.
Vuonna hyvin yleisessä merkityksessä, kääntäjä on aivan kuin ottaa koodia yhdellä kielellä
ja kääntämällä se toiselle kielelle.
Joten C -
tai, no, clang vie koodia, joka on C ja muuttaa sitä kokoonpanoon.
Ja sinun ei tarvitse pystyä ymmärtämään kokoonpanoon lainkaan.
Mutta se kieli, se kääntää se.
>> ALI: Okei.
Ja sitten, mitä kokoaja?
Kukaan?
SPEAKER 5: [kuulumattomissa] binääri?
ALI: Anteeksi, mitä?
SPEAKER 5: [kuulumattomissa] binääri?
ROB: Jep.
ALI: Kyllä.
ROB: So assembler -
kokoonpano koodi on todella lähellä, mitä tietokone voi ymmärtää,
mutta muista, että se ei aivan ymmärtänyt tekstin
, joka on kokoonpano koodi.
Sinun täytyy muuntaa sen suoraan 1s ja 0s.
Se on kuin suora käännös prosessi.
Voisimme vain antaa sinulle taulukon kartat mitä kukin
Asennusohje tarkoittaa.
Mutta kokoajan on juuri tekemässä tätä käännöstä.
Se muuttaa kokoonpano koodi 1s ja 0s.
>> Ali: Ja sitten, viimeinen, mitä linkkeri?
Ja miten-lcs50 liittyy?
Kukaan?
ROB: Tämä on vaikein ja vähiten selitti yksi kääntäjä video.
ALI: Muistaako kukaan näkee-lcs50 in komento?
SPEAKER 6: Kun menit tekemään.
Ali: Se on merkki.
Joo, viileä, okei.
Onko arvauksia tai epämääräisiä - kyllä, mene.
SPEAKER 7: En ole varma, koska lyhyt oli todella [kuulumattomissa], mutta se oli
jotain tehdä erillisiä tiedostoja keskenään kirjastoon ja sitten asettaa
ne kaikki yhteen kirjastoon?
ROB: Kyllä.
Joten kun olet hello.c, se on todella yksinkertainen ohjelma.
Olet todella vain tekevät yhden asian siihen.
Mutta kun saat muihin ohjelmiin -
ja kai silloinkin, kun GetString omien ohjelmiensa, sinun täytyy aloittaa
myös muita tiedostoja.
Joten CS50 kirjasto on yksi tällainen tiedosto, johon olemme toteutukset
sekä GetString ja GetInt ja kaikki nämä asiat.
Joten mitä linkkeri ei se kulkee ympäriinsä etsien läpi kaikki nämä
tiedostoja, nähdä, missä toiminnot määritellään, varmista, että kun soitan
GetString jonnekin, se tietää, että GetString tarkoittaa sitä, että se on
GetString ohi CS50 kirjastossa.
Joten linkkeri vie kaikki nämä tiedostot, murskaa ne yhteen, ja nyt
sinulla on suoritettava.
Joten pitää mielessä, jos käytät CS50 kirjasto, tarvitset sekä
# Include huipulla, ja sitten myös oma merkki komennon, kun
sanoi, sinulla on oltava-lcs50.
Joten et voi vain olla yksi.
Joten se on vain jotain pitää mielessä tulevaa tarvetta varten.
>> SPEAKER 8: Niin, sanokaamme oli toinen kirjasto, kuten cs51.h, voisimme
myös lisätä, lcs51?
ROB: Ainoa syy tähän-lcs50 toimii täydellisesti, koska meillä on se joukko
vuonna erityinen paikka teidän laitteissa siten, että se tietää mitä
-Lcs50 keinoin.
Voisimme vain antaa sinulle cs50.c tiedoston, ja sitten voit kääntää sen sanoen
Clang hello.c cs50.c, ja sitten se tee suoritettavissa laittamalla
nämä kaksi tiedostoa yhteen.
Se tietää, että-lcs50 tarkoittaa cs50.c yli joissakin hakemistossa että me määritetty
laitteillesi.
Joten jos halusi cs51.c olla määriteltävissä vain hieman sanomalla-lcs51,
Silloin meidän täytyy myös laittaa se, että hakemistoon joten se tietää mistä
etsiä sitä.
ALI: Mikä oli kysymys?
>> SPEAKER 7: Miksi sinun täytyy yhdistää CS50
jos - wasn't se kopioi / liittää ensimmäisessä vaiheessa kun esikäsitellyt sitä?
ALI: Haluatko sen?
ROB: Toki.
Joten cs50.h tiedosto on erillinen cs50.c C tiedostoa.
Oletko saanut toimimaan prototyyppejä luokassa?
Okei.
Joten periaatteessa, cs50.h tiedosto on juuri menossa kopioi ja liitä -
ALI: Tiedättekö mitä allekirjoituksia?
Okei, niin aika paljon, jos tarkastellaan -
ROB: Teeskennelläänpä cs50.h ei ole siellä.
Nyt tämä tiedosto -
teet string s = GetString.
Mutta kun olemme päässeet tähän kohtaan koodia, sillä ei ole aavistustakaan, mitä
GetString on.
Se tietää, että se toiminto, koska soitat sitä.
Mutta se ei tiedä, että se on todella tarkoitus palauttaa merkkijonon.
Niin kuin sanoin, string s = GetInt, tämä ei ole mitään järkeä, koska
olet allekirjoittamista kokonaisluvun merkkijono.
Mutta se ei tiedä, että GetString järkevää, koska se ei
tietävät, että GetString palauttaa merkkijonon.
Joten mikä cs50.h sanoo on jotain tällaista.
ALI: Mitä Rob on kirjoittaa on, se on lupaus, että se tulee
on tämä toiminto nimeltä GetString.
ROB: Tämä on kaikki cs50.h on kopioimalla täällä, samoin
kuten GetInt ja kaikki nämä asiat.
Ja tämä vain sanoo että GetString ei palauta merkkijono.
Et tiedä miten se on toteutettu vielä, mutta kun pääsemme tätä linjaa, nyt
se tietää, että se oikein palauttaa merkkijonon.
>> SPEAKER 9: Eli jos emme vaivaudu kanssa # include juttu ja sen sijaan
juuri kirjoitti prototyyppi ne, joita todella aio käyttää?
ROB: Joo.
Joten suorita tätä.
SPEAKER 9: Onko se?
Joten, oletusarvoisesti, se tekisi-l CS50 vain siksi -.
ROB: - ilmaisu.
ALI: Kyllä, koska kuten sanoit, se on merkki tiedoston.
ROB: cs50.h myös sattuu olemaan typedef char * merkkijono.
Voit täysin välittämättä siitä, mitä se merkitsee nyt.
Mutta se on myös jotain sisältyvät cs50.h.
Joten nyt asiat toimivat hienosäätää.
Se toimii täsmälleen sama kuin se oli silloin, kun meillä oli vain
# include.
Ja niin lukien cs50.h tapahtuu yli-sisältyä asioita tarvitset -
kuten, et käytä GetInt tässä ohjelmassa, mutta sillä ei ole väliä.
Se täytyy vain sivuuttaa sitä.
Ali: Ja sitten kun teet-lcs50 tänne ja täällä, mitä
siitä on se, että se ottaa itse toteutettavissa koodi.
Niin, että jos se todellisuudessa on, tekee -
kirjallisesti koodi GetString.
Joten se ei ole vain lupaus enää.
Se on todella menossa läpi ja ottaen merkkijono ja kaikkea sellaista.
Järkeä?
Kysymyksiä? Selvä.
Cool pavut.
>> ROB: Nyt voimme siirtyä varsinaiseen koodiin.
ALI: Okei.
Joten tässä on ensimmäinen ongelma.
Niin se sanoo kirjoittaa ohjelma, joka kysyy käyttäjältä pieniä
kirjain ja sitten muuntaa se isoiksi ilman peiton
toiminnot, kuten per mallitulosteita alla.
Voit siis nähdä, käynnistät ohjelman kanssa. / A.out, ja sitten olet
menossa laittaa pieniä, ja sitten ohjelma pitäisi antaa pääomaa
A. Joten miksi et kaverit kaikki antaa sille laukaus CS50 tilat?
Joten te mennä kaikki tänne.
Ja voit poistaa kaikki koodi tähän.
Ja sitten voit mennä eteenpäin ja aloittaa koodaus juttu.
ROB: Luultavasti haluat käyttää GetChar, joka on
sisällytetty CS50 kirjastossa.
ALI: Kai se voisi olla parempi, jos tallennat yläosa.
Joten kannattaa vain vaihtaa tavaraa keskellä.
Menkää ja työtä.
Voit vapaasti työskennellä toistensa kanssa.
Rob: Ja voit kysyä, jos sinulla on -
>> SPEAKER 10: Mikä on bittioperaatio?
ROB: Niin, sivuuttaa, että tähän ongelmaan.
ALI: Jos et tiedä sitä, että on hyvä.
ROB: Aiomme käyttää sitä seuraava ongelma.
Mutta jos et tiedä mitä bittioperaattori on, se on hienoa.
SPEAKER 10: Onko like kääntämällä ASCII-koodi?
ALI: Ei
ROB: Ei
Voit tehdä tämän ongelman.
SPEAKER 10: Miten teette sen?
Joten jos vain olisin jonnekin kirjoittaa -
ALI: Tai jotain kirjoittamaan.
ROB: Voisin juuri sellainen tyyppi tähän.
ALI: Kirjoita yläreunassa.
ROB: Voi, olen istuu mic.
>> Joten näimme luento että ASCII arvo pääoma on 65.
Ja pääoman B on 66, ja niin edelleen.
Voit siis kirjaimellisesti käyttää '' tarkoitetaan numero 65.
Like, tämä on arvo 65.
Voin tehdä jotain int x = 100 - "". Ja nyt x on arvo
100-65.
ALI: Voit ajaa että ja osoittavat.
Voi, ehkä ei.
Ei se haittaa.
ROB: Minulla oli tulostaa sen.
SPEAKER 10: Miten kääntää sen takaisin merkki?
ALI: Joten jos älä -
juuri pakottaa sen olevan char, vastaa.
ROB: Niin on -
ero nieriää ja kokonaisluku on vain kooltaan.
Joten kokonaisluku sattuu olemaan voivat edustaa asioita
on, niinku, neljä miljardia euroa.
Nieriä on vain pystyy edustamaan asioita jopa 255.
Mutta ei ole eroa muuta kuin tätä.
Joten voit sanoa char c = 65.
Se vastaa sanomalla char c vastaa ".
ALI: Voi ei.
Se ei oikeastaan ​​tallenna asioita.
ROB: Ei, et voi tehdä sitä.
Ali: Se on vain -
[Murahtaa]
>> ROB: Okei, joten mitä Ali juuri kirjoitin, oli ohjelma, joka ensin tulostaa 100 -
"A" kuin kokonaisluku, joka oli 35, kuten odotamme, koska 100 miinus ASCII
A: n arvo on 65.
Sitten hän tulostaa käyttämällä% c, mikä tarkoittaa tulkita sen char.
Joten 100 - on 35.
Tulkitaan, että merkin sattuu olemaan hash symboli.
Jos tarkastellaan asciitable.com tai mitä tahansa, huomaat, että 35 on
hash symboli.
ALI: Okei, muita selvennyksiä ongelmasta?
Okei, te voi mennä eteenpäin ja tehdä sen jälkeen.
Voit vapaasti kysyä tai puhua toisilleen.
Tai jos olet jo tehnyt, voit rentoutua.
>> LUCAS: Ovatko ne samaan luokkaan, kaikki pienillä kirjaimilla järjestyksessä ja
Myös isot ovat kunnossa, koska se on jotain hyödyllistä
ongelma.
ALI: Hyvä pointti, Lucas.
Joten, ei te kaikki tuon?
SPEAKER 11: Kyllä.
Näin teet sen, eikö?
ALI: Oikea.
ROB: Joo.
SPEAKER 11: [kuulumattomissa]
ALI: Selvä.
ROB: Mikä on kysymys kysyy?
Vain muuntaa -
ALI: Muunna pieniä ja isoja.
Siinä kaikki.
ROB: Okei.
ALI: Pitäisikö meidän kirjoittaa sen?
Kai me katsokaa jonkun muun.
ROB: Eli niille, jotka saattavat olla kiinni, niin -
jos minulla on joitakin char c ja sanokaamme se sattuu olemaan kirjain D.
Joten nyt, miten voin selvittää, mitä kirjain C?
Ei D, mutta en tarkoita, D sattuu olemaan neljäs kirjaimen.
Ja jos lähdetään laskien 0, niin se kolmas kirjaimen.
Joten jos on 0, B on 1, C 2, D on 3, miten voin selvittää int asema -
mikä asento aakkoset C on?
Onko kellään mitään ideoita?
ALI: Minusta he kaikki koodaus.
ROB: Entä ensimmäinen?
SPEAKER 12: Niin mitä on, vähennä ensimmäinen?
ROB: Joo.
ALI: Joo, mahtava.
Joten voisit tehdä pääoman D -
Anteeksi.
Otat merkki ja te vähennä ensimmäinen, kuten sanoit.
ROB: Joten jos D on jotain 68, ja me vähennämme, joka on 65, niin saamme
3, kertoo meille, että D on kolmas kirjaimen
alkaen 0.
Joten voit käyttää sitä.
Nyt tiedämme, mitä kirjaimen, mitattuna
isoja kirjaimia, tai -
voisimme tehdä saman asian pieniä kirjaimia selvittää, mitä
pieniksi kanta olemme tuumaa
Ja voimme käyttää sitä sitten muuntaa että isoiksi käyttäen
hyvin samankaltainen idea.
Kysy ehdotuksia?
>> ALI: Onko teillä - Odota, en tiedä kuinka paljon te olette.
Onko useimmat teistä tehnyt, olet vielä töissä, olet jumissa?
Te voi huutaa -
jumissa.
Yksi henkilö on jumissa.
Cool.
Minulla on tapana olla jumissa myös.
SPEAKER 13: olen valmis.
ALI: Olet valmis?
Okei.
Valmis.
SPEAKER 13: [kuulumattomissa]
ALI: Joo, viileä.
Oletko tarkistaa, että se on pienillä muodossa?
Okei, viileä.
Missä ovat muut ihmiset?
Oliko tämä vihje auttaa, kuten YK-kiinni itse?
SPEAKER 14: Ei oikeastaan, mutta vain siksi, en tiedä, en ole
sulattamaan sitä vielä.
ALI: Okei, viileä.
Haluatko kokeilla -
vai haluatko mennä puhumaan?
>> ROB: mitä aioin sanoa, -
niin käyttämällä tätä.
Ymmärrätkö, miten saimme mitä kanta aakkoset
kirjain on?
SPEAKER 14: Okei, joten kun laitat asioita puolilainausmerkkien,
joka palauttaa numeron?
ROB: Kyllä.
Se kääntää ASCII arvoa se edustaa.
Joten haluat mennä ASCII taulukon tai mikä se on?
ALI: Vain yksi näistä?
ROB: Jep.
Joten kun laittaa jokin näistä symboleista, välittämättä paljon -
ALI: [kuulumattomissa]
ROB: Voi, käyttämällä kohdistinta.
Ali: Joo.
Se oli jännittävää.
ROB: Niin, unohdetaan nämä ovat vasemmalla, jotka ovat erikoismerkkejä -
jos laitat jotakin näistä symboleista puolilainausmerkeissä, niin se on
käännetty tähän arvoon vasemmalla.
ALI: Tämä on desimaaliluku sitä.
Se on kuin otteluita 65, B 66, ja huomaat, että he kaikki
aakkosjärjestyksessä, mikä tekee eron.
Niin, kuten Rob sanoo, ennen, koska koodin, olimme laskea etäisyys
ensimmäinen kirjain, sinänsä.
Ja että tulee olemaan sama, onko se isoilla tai pienillä.
ROB: Joten kun teimme D, 68 miinus, 65, saamme 3.
Koska D on kolme asentoa osaksi aakkoset.
ALI: Joten miten voit kääntää että yli löytämään pikku d?
ROB: Joo.
Joten jos minulla on 3 nyt, tiedän halua mennä kolme kirjainta osaksi -
satumme menevän pieniä nyt, mutta sanotaanko haluan mennä kolmen
kannat otetaan pieni puolta.
Niin miten voin tehdä sen?
Tiedän pieniksi on 97.
Joten miten löydän kolmesta osaksi pieniä kirjaimia?
>> SPEAKER 15: Minulla on yksi kysymys oikeastaan.
ALI: Joo, mene eteenpäin.
SPEAKER 15: Joten tämä, sillä ei ole väliä, jos tiedän tämän kannan,
kuten en tarvitse tätä taulukkoa.
ROB: Nope.
Sinun ei tarvitse koskaan käyttää mitään näistä numeroista.
Ja tämä on tärkeä kohta ohjelmat että sinun pitäisi koskaan kovaa
koodata mitä tahansa näitä vakioita.
Käytä "". koskaan käytä 65 tai 97.
ALI: Näitä kutsutaan Magic Numbers, ja he todella sekava.
Kuten, kun olet debuggaus koodia, et ehkä muista mitä
olet käyttänyt niitä.
Ja meille luokittelua koodisi, emme todellakaan tiedä mitä
käytät niitä.
Joten se on parempi, jos itse käyttää merkkejä niin se tekee
järkevämpää ihmisiä.
Okei, muuta kysyttävää?
Enemmän ihmisiä tehneet, tai -
Kai me voidaan tarkistaa.
On todella pelottavaa, että näet ihmisten koodia.
ROB: Joo.
Meillä ei tarvitse tehdä sitä täällä.
Emme tiedä ihmisten nimiä, joko.
ALI: Ai joo, hyvin, että tekee sen paremmin, joten me olla vieläkin puolueeton
sijasta satunnaisesti picking joku.
Älä huoli.
En tee sitä.
Jos sinulla on satunnaisia ​​asioita - puhumattakaan.
Okei.
Miten ihmiset tekevät?
>> SPEAKER 17: Eli yhdeksäs rivi pitäisi tulostaa merkki?
ROB: Kyllä.
Ali: Joo.
Joten jos et mene alas -
ROB: Voi, voi tehdä sitä.
ALI: Näet, että se tulostetaan hash symboli.
SPEAKER 17: Ai, okei.
ROB: Luulen toinen tapa voit katsoa asioita on me tulostetaan kaksi
merkkiä.
Ensin olemme tulostus on kirjain A.
Seuraava olemme tulostaa vain 65.
Se luultavasti huutaa minulle näistä.
Eli jos me vain suorittaa tämän, huomaat, että se tulostaa molemmilla kerroilla.
Koska me pyydämme sitä samaa.
Pyydämme se tulostaa kirjaimen A. Ja sitten pyydämme sitä tulostamaan
numero 65 tulkitaan merkki, joka on sama asia.
ALI: Onko sinulla jotain sanottavaa?
Voi vain leikkiä, anteeksi.
Okei, miten ihmisiä -
ROB: Voimme kävellä sen läpi.
>> ALI: Okei, joten miten aloitat?
Kukaan?
Kuten vihje, meidän täytyy saada jotain ihmisiä, typers.
SPEAKER 18: [kuulumattomissa]
ALI: Ai joo, nopea, täydellinen.
Joten me kirjoittaa -
Mitä me kirjoita?
Kukaan?
Vai pitäisikö minun vain kirjoittaa sitä?
Me oikeastaan ​​kirjoittaa -
ROB: Toki.
Ali: Niin me kirjoita printf kysymään sitä, joten voimme olla
kuten, anna minulle merkki.
Okei, ja mitä sitten?
Miksi se tekee niin?
ROB: En tiedä.
ALI: Okei.
Joten nyt me kerromme heille antaa meille merkin.
Mutta miten itse tuon merkin?
SPEAKER 19: Käytä GetString.
ALI: GetString?
GetChar?
Okei, joten mitä eroa merkkijono ja char?
SPEAKER 19: Strings ovat sarja, kuten erilaisia ​​merkkejä.
>> ALI: Cool, joo.
Joten tämä ongelma, meidän tarvitsee vain harkita yhden merkin kerrallaan, joten
me vain teemme GetChar tähän ilmentymään.
ROB: Voisimme toteuttaa toimia, jos haluamme, että kesti koko merkkijono
ja meni merkkijonon ja muuttaa kaikkia pieniä ja isoja, ja kaikki
isoiksi pieniksi.
Mutta täällä, me vain pyytää teitä yhden merkin.
ALI: Eli nyt meillä on merkki täällä, mutta meidän täytyy pelastaa se.
Joten me lisäämme char c - mitä?
SPEAKER 20: Määrittele muuttuja.
ALI: Joo, aivan.
Joten meillä on luonnetta.
ROB: Luulen saatat olla -
olet vain kolme tiloja, minkä vuoksi se huutaa sinua.
>> ALI: Okei, viileä, nyt kun olemme tabbing joukko, mitä tapahtuu seuraavaksi?
Mikä on seuraava askel?
ROB: Mitä meidän ohjelma pitää muuttaa kirjain on
iso kirjain.
Mitä jos satun tulla hash symboli?
Onko tuo -
Ali: Se on hyvä merkki.
Käytämme sitä paljon.
ROB: Onko se kelvollinen Voin muuntaa ison muotoon?
SPEAKER 21: Ei
ALI: Ei
Meidän pitäisi tarkistaa, että.
Joten voimme olla, jos ilmoitus tarkkailun joten jos c on suurempi kuin
tai yhtä suuri kuin pieniä "a'-
joten jos katsomme kaavio, huomaat, että sen täytyy olla välillä täällä,
klo 97, ja pieniä.
Ja se voi olla mikä tahansa näistä, ja lisäyksin kaikki alas.
Ja sitten on z 122.
Ja se on laskea näiden kahden arvon välillä.
Onko siinä järkeä?
ROB: Joten jos c ei ole välillä 97 ja 122 -
tai sinun pitäisi koskaan tarvitse käyttää näitä numeroita - jos C ei ole välillä "" ja
'Z', niin se ei ollut kelvollinen merkki meille isoiksi.
Ali: Niin koodimuodossa, sanomme, että jos c on suurempi tai yhtä suuri kuin yhden
Jos pienet -
wow, miten sanot?
Kunnossa, on suurempi tai yhtä suuri kuin pieniä "a", ja sen on oltava edellä
pieniä "Z". Niin sen on oltava pienempi tai yhtä suuri pieniksi "z".
Teemme varmasti se välillä.
Sitten voimme jatkaa meidän onnellinen koodilla.
Mitä?
ROB: joten ajattelin olisimme vain kyselevät, jos satumme ole
pieni kirjain.
ALI: Voi, en ollut tietoinen siitä.
Anteeksi.
>> Okei, joten jos aiomme tehdä niin Rob sanoo, ja varmista, että -
Voimme pitää pyytää niitä, niin mitä meidän pitäisi tehdä?
SPEAKER 22: [kuulumattomissa]
ROB: Joo.
Meidän pitäisi käyttää jonkinlaista silmukan.
Koska käyttäjä voi syöttää jotain pätemätön lukemattomat määrän kertoja.
Voit siis käyttää while-silmukka.
Tarkoituksena do-while-silmukka -
kirjaimellisesti, vain kerran koko elämänsä tulet koskaan käyttämään tee-
kun silmukoita on kun pyydät käyttäjän syötettä.
Joten siitä pyydämme käyttäjän syötettä tässä vihje, että meidän pitäisi
käyttää do-while-silmukka.
Ja miksi?
Koska do-while-silmukka aina tapahtuu ainakin kerran.
Joten kun pyydät käyttäjän syötettä, jonka haluat sen tapahtuvan ainakin kerran.
Ja sitten jos asiat olivat onnistuneita, voit jatkaa.
Jos ei, mene takaisin ja kysy uudestaan.
>> ALI: Eli toisin sanoen, meidän on tehtävä osassa.
Ja niin tämä kertoo sitä tekemään jotain.
So printf -
tulostaa lausunto, nopea ja myös saada merkin, tai yrittää
saada merkin.
Ja sitten meidän täytyy tarkistaa, jos se todella teki sen oikein.
Niinpä sitten lisäämme ehtoja, sanomme taas, ja sitten meillä on
ehdollinen lausunto.
ROB: Mutta nyt olemme peruuttaneet ajatusketju.
Nyt alunperin sanonta jos c on tällä alueella, se on voimassa.
Nyt haluamme kääntää tämän ja sanovat jos C ei ole tällä alueella, niin me
on tuettava tehdä asioita uudestaan.
ALI: Ai, joo.
ROB: Joten vaikka tämä ei ole totta, me haluamme mennä takaisin ja
pyytää toisen hahmon.
Onko kaikki nähdä, että?
Kysymyksiä tähän?
Okei.
>> Joten nyt meillä on kelvollinen merkki, että voimme isoiksi.
Ali: Niin mitä sitten seuraava askel uppercasing se?
SPEAKER 23: Lisää 32.
ALI: Voit lisätä -
Anteeksi, mitä?
SPEAKER 23: Etkö voi vain lisätä 32?
ROB: Joten kyllä, ei niinkään Magic Numbers.
Sinun pitäisi vain käyttää yhden tarjouksen kamaa.
SPEAKER 23: Okei, no -
Rob: Mutta saat 32 -
ALI: Miten sait numero 32, luulisin, on mitä sanomme.
SPEAKER 23: [kuulumattomissa]
ROB: Joten voimme keksiä numero 32 yhteen -
SPEAKER 23: [kuulumattomissa]?
ROB: Joo.
Mutta jos aiomme tehdä se kahdessa vaiheessa teimme ennen kanssa
asento kamaa.
Joten aseman aakkoset että c sattuu olemaan on c miinus pieni
"A". Joten jos olemme siirtyneet pieniä "d", asema tulee olemaan 3.
Ja nyt me haluamme viedä asioita isot erilaisia ​​asioita.
Joten nyt uusi c tulee olemaan pääkaupunki "" plus asentoon.
Joten ihmiset miten tuo meidät -
olemme siirtymässä pienet alue, tarkka syvyys olimme tuohon
alue, ja menee alas iso alue, ja menee niin pitkälle
sitä uudelleen, mikä tulee olemaan sama luonne, mutta nyt
uppercased.
Ali: Ja ihmisiä, jotka olivat hämmentyneitä siitä, kuinka hän juuri sanoi 32,
pohjimmiltaan hän yhdisti molemmat yhdeksi julkilausuman.
Joten vastaavalla tavalla kirjallisesti tämän sanoa voit vain sellaista
sijaisuus, C miinus "," ja laita se tänne.
Joten mitä hän teki, I älä -
char newc = isoja '' plus c miinus pieniksi ". Ja koska algebra,
voit siirtää ne.
Voit myös sanoa, että voit siirtää sen ympärille niin char newc = isoja '"
miinus pieniksi "" plus c.
Ja tämä, huomaat jos menemme takaisin kaavioon.
Olemme isoiksi on 65 ja pieniksi on 97.
Joten 65-97 on -32.
>> Hei.
Istu.
Oh.
Voit istua täällä.
Cool, okei, mahtava.
Tervetuloa osioon.
Huomaat, että ero on 32.
Niin, että jos hän, että numero.
Mutta se ei ole, kuten Rob sanoo, paras tapa tehdä se, koska se on outo
maaginen numero sekaannusta.
ROB: Käytä pääoman miinus pieniä kirjaimia.
Sinun ei tule käyttää vain suoraan 32.
SPEAKER 24: Miksi, taas?
Miksi et käytä 32?
ALI: Jos emme, se olisi char newc = -32 + c.
Ja jos et näe mitään muuta, jos tämä on kaikki mennyt, ja sinä
vain nähdä tämän yhden rivin, niin mistä tiedät, mitä negatiivinen 32 on?
Se on vain pois paikaltaan.
ROB: Joten ohjelma toimisi täysin kunnossa.
Se on vain tyyli juttu.
Joku menossa ja lukea koodin, he ovat kuin mitä 32 tarkoittaa?
Ehkä he älä -
En luultavasti ei heti ymmärrä, että 32 sattuu olemaan
ero kirjain ja iso kirjain, vaikka
aiomme käyttää tämän seikan seuraava ongelma.
32 on -
voit jättää kommentin yläpuolella sanomalla 32 on ero
"" Ja "." Mutta siinä vaiheessa, miksi ei vain käyttää "" ja "", ja sinä
ei tarvitse kommentoida sitten.
>> Ali: Se on vain miten sen yläpuolella ovat paljon puhtaampia, tyylillisesti.
Ja niin, koska olet juuri aloittamassa ohjelmointia -
tai kai ole, koska olet hakkeri EDI - koskaan mielessä.
Se on vain hyvä tapa saada -
se on parempi olla paremmin tyyliin.
Se on helpompaa muiden ihmisten lukea.
ROB: Sinun ei koskaan tulisi pitää muistaa ASCII taulukon, koskaan.
Sinun pitäisi vain pystyä käyttämään yksi tarjous merkkiä.
Kysymyksiä?
ALI: Kaikki hyvä?
ROB: Okei.
Joten seuraava ongelma on huomattava.
Joten seuraava ongelma kysyy meiltä -
ALI: seuraava ongelma on pyytänyt meitä tekemään sama asia, mutta käyttää
bittioperaatioiden.
ROB: Ja tietenkin, emme ole nähneet bittioperaatioiden vielä.
Joten me nyt keskustella niistä.
ALI: olla innoissaan.
He erittäin hauskaa.
>> ROB: Eli säännöllinen toimijoiden, kuten x plus y, miinus, ajat, jaa.
ALI: Kirjoita se tähän nopeasti.
Rob: Mukana on myös%, jos et ole nähnyt sitä, jota voit käyttää, jonka
prosenttia symboli.
Mutta emme käytä niitä tähän ongelmaan.
Haluamme käyttää bittioperaatioiden.
Muistakaa, toimme sen luennossa yksi.
En ole varma, jos olemme keskustelleet binary pidemmälle.
Mutta muista, että jokainen numero on edustettuna -
No, kaikki -
on edustettuna 1s ja 0s binary.
Joten se tarkoittaa, että kun sanon numero 8, satun tietämään, että se
kuten, 1000.
Mitä bittioperaatioiden tehkäämme on toimivat näillä bittiä -
on toimivat nämä bitit suoraan.
Nyt en ole enää tekemisissä kannalta kahdeksan.
Olen tekemisissä kannalta 1000, ja haluan tehdä asioita jotka
yksittäiset bitit.
Joten Ali on kirjoittanut bittioperaatioiden täällä, mutta that's -
Numero 8 käytämme niin yksi esimerkki numeroita.
Ja binääriesitys on 1000.
Käytämme toiseen numeroon, 5 -
todella Katsotaanpa käyttää 9 ja 5.
Ja 5: n binääriesityksessä on 00 -
0101.
ALI: Onko kaikki hyvä siitä?
Binary kamaa?
Se oli ensimmäinen luento?
>> ROB: Joten vaikka et ole täysin päällä miten muuntaa asioita
binary, se ei ole täysin tärkeä tähän ongelmaan.
Käytämme sitä, mutta sinulla on paljon enemmän mahdollisuuksia selvittää, miten
nopeasti kääntää asiat osaksi binary.
Joten käyttäen 9 ja 5, nyt meillä on bittioperaatioiden.
Niin, ja myös, 9 ja 5, jos se on kokonaisluku, niin oikeastaan ​​se on 32 bittiä,
mikä tarkoittaa, että meillä kuin 0, 0, 0, 0 Monesti sitten
101 aivan lopussa.
Se on vain siksi, ei väliä mitä teet, kokonaislukuina, 32 bittiä.
Juuri siksi meidän tarvitsee vain neljä bittiä edustaa 9 ei tarkoita emme
käyttämällä ylös muiden 27 bittiä vain 0s.
ALI: Vain selventää, yksi näistä numeroista se 0 tai 1 on vähän.
Tämä on 4 bittiä.
Kuten niin Rob sanoi että koneet säilytä niitä 32.
Niin sitten ne olisi 32 joko 0 tai 1.
Cool?
ROB: bittioperaatioiden.
Ensimmäinen että hoidan Tehdään &.
Joten jos teemme 9 & 5.
Joten mitä ja tekee on, vähän kerrallaan, se vertaa bittiä kaksi numeroa
ja jos molemmat numerot ovat 1, niin se palaa 1.
Jos yksi on 0 ja toinen on 1, tai molemmat ovat 0s, sitten se palauttaa 0.
Joten voit ajatella sitä teidän loogista siirretystä.
Kuten tarvitset true ja true return true, mutta oikean ja väärän on väärä.
Joten se on sama asia, mutta nyt olemme tekemisissä sen kanssa vain bittejä.
>> ALI: Joten jos katsot tätä, sinulla on 1 -
sinun linja niitä ylös, joten se on 1 ja 0.
Oletteko kaverit ajattelevat, että olisi - mitä se arvioi sen?
SPEAKER 25: 1.
ALI: Cool.
Tai no.
Anteeksi.
Joten ei se järkevää?
Joten mikä on kollektiivinen vastaus uudestaan?
Anteeksi.
Eli jos meillä on 1 ja 0, niin mitä saat?
ROB: Joten luulet miten sanot ja ääneen.
Jos käytössä on kaksi bittiä, x ja y, sinun on x-ja y on 1, jotta se
arvioimaan todellista - tai, jotta se voidaan arvioida 1.
Jos x tai y on 0, niin se on epätosi tai 0.
LUCAS: On hyvä muistaa myös, että 1 on tosi, ja 0 on epätosi.
Joten jos sinulla on tosi ja epätosi, se on väärä.
Mutta sitten, true & totta, totta.
False & false, false.
Ali: Olemme true & epätosi.
Joten 1 ja 0.
Joten sitten taas, anteeksi, vielä kerran?
SPEAKER 25: Olisi 0.
Joo, viileä.
Ja sitten meillä on 0 ja 1 -
SPEAKER 25: [kuulumattomissa]
Ali: Joo.
Joten voit aina vaihtaa ne -
Sitten jos sinulla on 0 ja 0?
SPEAKER 4: 1?
0?
ROB: Niin se on 0.
Se ei ole, että molemmat numerot on oltava sama.
Se, että molemmat numerot on oltava 1.
Ali: Niin molemmat olla totta sen olevan totta.
Joten se 0.
Ja sitten sinulla on 1% 1, joka on?
ROB: Nämä ovat melko hyviä numeroita.
Heillä on kaikki mahdolliset -
ALI: Hyvää työtä, wow.
Okei, viileä.
Joten ei se järkevää kaikille?
>> ROB: Joten nyt teemme |.
Ja tämä tulee olemaan hyvin samankaltaisia, mutta nyt sen sijaan, että x ja y tarvitsee
olla 1, jotta se voisi arvioida yhden, nyt se on vain x tai
y on oltava 1.
Ali: Niin 1 | 0 evaluoituu -
LUOKKA: 1.
ALI: Cool.
0 | 1 evaluoituu -
LUOKKA: 1.
ALI: Cool, ja sitten 0 | 0 -
LUOKKA: 0.
ALI: Joo, ja sitten 1 | 1 -
LUOKKA: 1.
ALI: Cool.
Niin, että on kuin kaksi bittioperaatioiden.
Mahtavaa.
ROB: Joten nyt teemme ^.
ALI: Pitäisikö meidän tehdä niitä kaikkia?
ROB: Joo, koska mielestäni me aiomme käyttää sitä -
käyttää niitä kaikkia.
ALI: Okei.
So -
ROB: Luulen emme tarvitse.
Ali: Niin ^ toimii, että sinun täytyy olla täsmälleen yksi tosi ja toinen epätosi.
^ Tarkoittaa poissulkeva TAI.
Joten nyt se ei ole -
jos x ja y ovat molemmat 1, se on nyt väärä.
Se on ero ^ ja |, että OR, voit olla, jos x on
tosi tai y on totta, olemme hyviä.
Ei, ^ sanoo jos x on tosi, y on väärä, tai muuten se ei ole totta.
Onko sinulla kysymys?
>> SPEAKER 26: [kuulumattomissa]
Ali: Joo.
Se on tavallaan samanlainen.
ROB: Joo, niin kun saat että matalan tason laitteisto tavaraa, nämä ovat
toimintojen tyypit olet tekemisissä.
Tällä laitteisto tasolla, voit käsitellä vain bittejä.
Et käsitellä numeroita.
ALI: Okei, sillä ^, tai jos sinulla on 1 ^ 0, mikä olisi se arvioi sen?
LUOKKA: 1.
ALI: Cool.
Jos olet
0 ^ 1? LUOKKA: 1.
ALI: Cool.
0 ^ 0?
Cool.
Ja sitten 1 ^ 1?
LUOKKA: 0.
ALI: Cool, awesome.
Seuraavassa -
ROB: Mielestäni nämä ovat kaikki meidän on käsiteltävä.
Me vain tehdä näitä.
ALI: Ainoa kerta joudumme tekemään -
ROB: Voi, että tulee olemaan viimeinen ongelma.
SPEAKER 27: Odota, jälleen?
ALI: Anteeksi, mikä oli kysymys?
>> SPEAKER 27: Voitteko selittää, että jälleen kerran?
^?
SPEAKER 27: Exclus - joo.
ALI: Mitä eksklusiivinen OR tarkoittaa, että on oltava yksinomaan
yksi oikea ja yksi väärä, joten yksi 1 ja yksi 0, vs. OR, sinulla voi olla -
yksi niistä on oltava totta, tai molemmat voivat olla totta, se
arvioida todellista.
SPEAKER 27: Eli 0 ja 0 olisi väärä.
Ali: Joo.
Mutta jos sinulla on 1 |
1, joka arvioi totta.
Mutta jos sinulla on 1 ^ 1, kuten teimme, että epätosi.
Koska se ei ole pelkästään yhtä totta.
ROB: Ja tämä saattaa olla apua, mutta huomaa, että ^ on
vastaa vain ottaa |
miinus &.
Ja voit itse ajattele sitä tällä tavalla.
^ On vain oring kaiken yhdessä, mutta ottaen mitä tahansa bittejä jossa
molemmat olivat totta.
Niin & palauttaa kaiken missä molemmat olivat totta.
| Palauttaa kaiken joissa toinen tai molemmat olivat totta.
Joten vähentämällä että ulos | antaa sinulle ^.
ALI: Kysyttävää?
Tämä oli paljon tietoa.
Jokainen hyvä?
>> ROB: Voimme mennä yli seuraavaan löytyneeseen seuraavan ongelman, vinoviiva
Mitä kello on?
He eivät tarvitse tätä vasta seuraava ongelma.
ALI: Luulin, että se oli tämä.
ROB: Se ei ole.
ALI: Oletko varma?
ROB: Kyllä, olen positiivinen.
ALI: Miksi emme alkaa tehdä seuraava ongelma?
Ongelmana on, jälleen, muuttaa se pieniksi isoiksi, ja tämä
aika käyttää bittioperaatioiden.
ROB: niin me -
Aloitetaan binääriesityksen "" capital ""
joka on 65.
Joten binary -
niin '' = 65, joka =, binääri -
Aion sotkea määrä 0s - että.
ALI: Joten se järkevää kaikille?
Niin, 1, ei 2s, ei 4s, ei 8s, ei -
no 16s, ei 32s, ja sitten yksi 64.
ROB: Joo, luulen että yksi liikaa 0s.
ALI: Anteeksi.
>> ROB: Okei, joten meillä on 64 asetettu, ja meillä on 1 sarja, ja yhdistämällä nämä
yhdessä, saamme 65.
ALI: Cool pavut?
ROB: Eli nyt pieniksi 'A'-
huomaa 97 -
Mitä eroa on 97 ja 65?
SPEAKER 28: 32.
ROB: Joo.
Joten se 32, mikä on oma vähän, joten tulee olemaan 110001.
Ja tämä tulee olemaan koskee kaikkia mahdollisia merkkejä.
Joten jos ajattelemme "D", joka tulee olemaan 68, joka tulee olemaan 1.000.011.
Ja sitten pieniä "d" tulee olemaan 68 plus 32, joka on 100, joka on
olemaan sama asia, että tämä oli vain kääntämällä
32 uudelleen, joten 1100011.
Joten ero isojen ja pienten kirjain on juuri flipping
että 32-bittinen asentoon.
SPEAKER 29: Eikö 1000100?
ROB: Odota, se on 100 -
jotain tein väärin.
Tämä ei ole totta.
Ajattelin, että se oli eroa 3, niin sitten olen vain jumissa
binaariseen 3 lopussa.
Tämän pitäisi olla oikea.
ALI: Kiitos.
Hyvä huomautuksesta.
Se oli terävä.
Selvä on, että ihmisille selväksi?
>> ROB: ero isojen ja pienten versio on
aina vain olemaan 32, ja niin se tulee aina olemaan yksi bitti
, joka on selattava vaihtaa näiden kahden välillä.
Ali: Niin siinä tapauksessa, tietäen ero pääoman ja
pieniä on hyvä asia.
Ei koodin, mutta käsitteellisesti ainakin, se on hyvä.
Joten te mennä eteenpäin ja koodin että Spaces nyt.
Vai pitäisikö meidän vain keskustella?
ROB: Voimme vain keskustella.
En tiedä.
Te voi kokeilla.
Keskustelu keskuudessa itseäsi hieman.
Annamme sinulle mahdollisuuden koodata sitä.
[Väliin ÄÄNTÄ]
ALI: - on viileä
SPEAKER 30: Tämä on kuin hakkeri komedia.
ALI: Joo, me vain kertoa uutisia, menee sen läpi.
>> Rob: Ja olemme takaisin.
Ali: Se on eräänlainen outo.
Minusta tuntuu että meillä pitäisi olla CS50 uutisiin ja voisimme
itse istua näin.
ROB: Hacker News.
ALI: Hacker News 50.
ALI: Voit vapaasti kysyä kysymyksiä, jos olet hämmentynyt.
ROB: Onko kukaan jumissa?
ALI: Joo, se on hyvä asia.
ALI: Hetkinen, olet jumissa tuolin?
Oh.
Olin hieman huolissani.
ROB: Koska olen vain ymmärtänyt, että olemme menossa halua
toinen bittioperaattori.
Nyt mennään vain muuntaa isoja ja pieniä kirjaimia.
ALI: Anteeksi, ei kaikki tuon ilmoituksen?
Aiomme mennä isoja ja pieniä kirjaimia.
ROB: Sitten kerromme pieniä isoiksi heti sen jälkeen.
Voi ei.
Meillä on bugi tässä, jossa kai, emme koskaan yrittänyt juosta.
Mikä on juuri sitä char c on ilmoitettava ulkopuolella silmukka, koska
sen soveltamisala on rajoitettu silmukka.
SPEAKER 32: Tässä tapauksessa on väärin käyttää useita?
ROB: Eh, sinun ei tarvitse.
Jos minä taataan, että pääoma "A'- tai pieniksi" "miinus pääomansiirrot" "
oli tasan yksi bitti, mutta et tiedä sen 32 -
asiat toimisivat yhtä hyvin se olisi 16-bittinen, joka on selattava - tai
no, kai se wouldn't -
tai 64 bit oli kääntynyt, mahdollisesti.
Mutta sinun ei pitäisi tarvita käyttää 32.
Voisit sijaan käyttää pieniksi "" miinus pääomansiirrot ".
>> SPEAKER 32: Okei.
Mitä voit tehdä, jos sinusta tuntuu, olet kirjoittamassa liikaa on, voit määrittää sen
yläreunassa.
Joten voit olla, int erotus = pieniksi '' miinus pääomansiirrot ". Ja
voit kirjoittaa eron sijaan.
Se on voimassa.
Mutta vain käyttämällä numero 32 on sellainen -
SPEAKER 33: Vaikka se johtuu siitä, että se on 32 bittinen?
Ali: Joo.
ROB: Ei voi olla -
ainoa tae meidän tehdä teille on, että ero
isoja ja pieniä yksi bitti.
Sen ei pitäisi olla merkitystä, että se sattuu olemaan 32-bittinen, joka on käännetty.
Aikaa näkökohdat, aloitamme menee yli tämän.
Se on okei, jos et ole valmis.
Älä mieti sitä.
ROB: Olettaen C on kirjain -
meillä ei tarvitse olettaa c on kirjain.
Tiedämme C on kirjain jälkeen kun silmukka -
do-while-silmukka.
Joten se tarkoittaa sitä näyttää tältä "". Joten jos haluamme tuoda tämän
"" Tämän "" Mitä meidän pitää tehdä?
Miten siis muuntaa ja kääntää vähän?
ALI: Miten kääntää sitä?
>> ROB: Joten me tiedämme haluamme kääntää 32 bit.
Niin, että tekee "" miinus "" tai voisimme kirjoittaa 32, mutta -
eihän se, se on toisinpäin.
ALI: Okei joten Rob tässä laskennassa, että numero, maaginen numero 32.
Niinpä hän selvittää missä se vähän läppä alue olisi.
Ja sitten mitä laitamme missä kysymysmerkkejä ovat?
ROB: Miten kääntää että bitti?
Kannalta iso kirjain, se on 0, ja haluamme tulla 1.
SPEAKER 34: |.
ROB: Joo.
Joten tämä on meille sanoen otamme ". Olemme oring se 0 -
1000 -
ja että = se.
ALI: Onko järkeä kaikille?
Voimme käydä läpi vähän kerrallaan, jos haluat.
SPEAKER 35: Oletko [kuulumattomissa]?
ALI: Missä miinusmerkki?
ROB: Ai, sinä tarkoitat täällä?
ALI: Ai, joo.
ROB: Joten kai tämä on meille.
Voisimme sanoa 32, ja nyt me vain käyttämällä bittioperaatioiden.
Ali: Emme pidä Magic Numbers.
Emme aio tehdä sitä.
Myös minun mielestäni meidän pitäisi vain käyttää bittioperaattori -
SPEAKER 36: Jos käytät ^, saatte 32?
SPEAKER 37: Joo, luulen -
ROB: Joo tulet.
ALI: Näin olisit tehnyt sen menee
pääomatulojen pieniksi.
>> Nyt voi joku kertoa minulle miksi Rob ja vaihdoin nopeasti ja miten meni
alkaen isoja pieniä, eikä pieniksi ja
isoiksi kuten teimme ennen?
Onko kellään mitään ideoita miksi se voi olla vaikeampaa?
ROB: Joten me tekisin -
ALI: Joo, mene eteenpäin.
SPEAKER 38: | operaattori oli vain todella hyvä lisätä.
ALI: Joo, aivan.
ROB: Mitä haluamme tehdä pieniä isoiksi tapauksessa,
muuntaa tämän "a'-
joten haluamme laittaa joitakin numeroita tässä ja käyttää joitakin operaattori siten, että se tulee
ulos pääoman A. Olemme edelleen luultavasti käyttäen 32 jotenkin, mutta nyt kuinka me
saat tämän tulemaan ulos tästä?
Niin c -
oh, en silti halua, että liian -
ALI: Eli nyt jos me muuntamiseen pienet isoiksi jälleen, meidän
tehdä ^ toiminta, kuten te sanoi.
ROB: On muitakin tapoja voit tehdä asioita.
Paljon bittioperaatioiden päätyä hyvin helposti määriteltävissä kannalta
Muiden bittioperaatioiden.
Joten aioin käytä ^ tai ollenkaan, mutta ^ toimi täysin kunnossa.
>> ALI: Okei, joten aiomme mennä viimeinen ongelma, joka on perus -
viimeinen ongelma on muuttaa jotain binäärimuotoon.
Niinpä esimerkiksi, sinulla on 50, ja sitten muuntaa sen
binary, joka on 110010.
Ja luulen te kaikki tietää binary alkaen luento.
Ja sinä myös ei pitäisi tehdä mitään johtava 0s siihen.
ROB: Voit ohittaa tämän osan nyt.
Ensikierron, voit tehdä sen niin, että on olemassa johtavia 0s.
Ja sitten voimme muuttaa, että on mitään johtava 0s, jos meillä on aikaa.
ALI: Joten älä murehdi.
Yritä saada binary.
Hyvä paikka aloittaa olisi -
ROB: Meidän pyytää kokonaisluku.
Ali: Joo, se on hyvä.
Voimme aloittaa siitä.
Joten voit vaihtaa nopeasti.
Joten sen sijaan luonteeltaan, nyt olemme tekemisissä kokonaislukuja.
Cool?
>> ROB: Ja nyt, mitä meidän do-while ehto tulee?
Se pyytää ei-negatiivinen kokonaisluku.
Ali: Kun haluamme jatkuvasti kysyä käyttäjältä jotain muuta?
Kun se on pienempi kuin 0.
ALI: Oikea.
ROB: Vaikka i on pienempi kuin 0.
ALI: Nyt haluamme muuntaa sen.
Onko teillä mitään ideoita mitä tehdä?
Jokainen inklings?
Joo.
SPEAKER 39: Onko meillä muuntaa se, vai voimmeko vain tulostaa joitakin 0s ja 1s
että olisi oikea numero?
Voisitko tehdä for-silmukka ja laskea ulos toimivalta 2?
ROB: Kyllä.
Sinun ei tarvitse muuntaa i sen binääri -
binääriesityksen en aio mahdu i.
Sinun tarvitsee vain tulostaa binääriesityksen i.
ALI: Toisin sanoen, sinun ei tarvitse mennä kahden potensseja.
ROB: Koska olen on jo tallennettu binäärejä, joten sinun ei tarvitse
muuntaa sen binary.
Vain mennä yli sen binary, ja tulostaa sen.
Ja olet menossa tarvitse käyttää bittikohtainen, koska haluat katsoa
todellinen bittiä.
Sinun ei tarvitse käyttää bittikohtainen, mutta tee.
Ja se on todella -
voit vain tehdä kahden potensseja kertomalla 2.
Menemme yli kahden viimeisen binary bittioperaatioiden,
mikä on tämä.
Joten kun otat -
>> ALI: Voitko käydä läpi molempia?
ROB: Joo.
Joten mene 9.
Joten 9 VASEN VAIHTO 1 -
mitä vasen shift tarkoittaa ei vain siirtää kaikki bittiä vasemmalle ja aseta 0.
Joten olemme siirtämällä kaikki bitit 9 vasempaan silmään
asema, joka antaa meille -
Joten huomaa olemme siirtyneet kaiken jäljellä yksi, ja lisätään 0,
oikealla puolella.
Jos olisimme siirtynyt vasemmalle kaksi, voisimme siirtää kaiken jäljellä kaksi,
ja aseta kaksi 0s täyttämään aukkoja.
Kysymys?
ALI: Joten sitten oikea shift ei samanlainen asia.
Jos sinulla on 9 OIKEA VAIHTO 1 niin olet juuri siirtymässä kaiken yli
oikea, menetät numeron, niin 100 sijaan.
ROB: Joten se on hienoa, että olet menettämässä hieman joka sattui olemaan kaikille
tapa oikealle.
On olemassa erilaisia ​​oikeutta muutoksia, mutta periaatteessa voit ajatella
OIKEA VAIHTO kuin vain jakamalla 2.
Ja voit ajatella vasen muutos kuin kertomalla 2.
Joten jos olet muuntanut tämän -
Jos muutettu 9 vaihdetangon 1, joka on yhtä suuri kuin 10010, jos itse meni
kautta binary ja tajunnut, mitä se oli, se olisi vain 18.
Me vain kerrotaan 2.
1001 vasen Shift 2 tulee olemaan 36.
Me kerrotaan 4.
Okei, viileä, joten se on kätevä bittioperaattori tämä yksi.
Lisää sekaannusta?
Onko kaverit haluavat kokeilla sitä?
Tai voimme vain hypätä ja aloittaa sen?
ROB: Meidän pitäisi varmaan hypätä suoraan sisään
ALI: Joo, okei.
Rob: Ja kävele sen läpi yhdessä.
>> Ali: No minä vain mennä sitä.
Niin hän sanoi alussa, aiomme mennä läpi vähän kerrallaan.
Joten olemme menossa silmukka.
Onko kellään ajatusta paras sellainen silmukan läpi tämän?
Meillä on taas silmukoita, tee-ja silmukoita, silmukoita.
SPEAKER 40: do-while silmukka?
ROB: Joten muistakaa mitä sanoin siitä, me vain käyttää do-while
silmukoita saada käyttäjä syöttää.
Et koskaan melko paljon koskaan käytä niitä mihinkään muuhun.
ALI: ongelma do-while silmukoita on se jotain ennen kuin se tarkistaa
kunnossa.
Niin, se voisi tehdä jotain pahaa -
kuten, satuttaa -
jotain se ei ole mahdollista.
Joten haluat tarkistaa ensin.
ROB: On paljon tapauksia, joissa voit käyttää do-while silmukoita, mutta ihmiset
älä odota sinun käyttää niitä ellei se käyttäjä syöttää.
Joten olemme käyttäneet do-while-silmukka saada i.
Kuinka monta kertaa on meidän silmukka menossa haluavat loop?
Haluamme lenkki kunkin bittiä i.
Kuinka monta bittiä ovat i?
SPEAKER 41: 32.
Ali: Joo.
ROB: Niin on 32 bittiä.
Emme halua sanoa 32.
Me sen sijaan haluamme sanoa sizeof -
jotka olet nähnyt, että luokassa vielä?
ALI: Nope.
ROB: Miksi se sano käyttää sitä -
sizeof (int) kertaa 8 -
ALI: Niin, sizeof on -
>> SPEAKER 42: [kuulumattomissa]
ALI: Mielenkiintoinen.
Joten, sizeof on sisäänrakennettu C toiminto, jossa se vain kertoo
bittien lukumäärä -
ROB: Bytes.
ALI: Bytes, anteeksi -
tavumäärä, että muuttuva on tallentaa arvon.
Joten mielestäni hän meni luokassa, sitten int on 4 tavua ehkä.
Cool?
ROB: Mutta sinun ei tarvitse tietää, että int on 4 tavua.
Sinun pitäisi pystyä sanoa -
sinun tulee käyttää sizeof (int) saada 4 tavua.
Ja se on todella tärkeä joitakin asioita.
Int ei ehkä 4 tavua.
Toiseen tietokoneeseen, int voi olla 8 tavua.
Joten ohjelma ei toimi kyseisessä tietokoneessa koska kovakoodatuilla 32
bittejä, kun kyseisen tietokoneen sattuu olemaan 64 bittiä.
ALI: Eli sinulla on bittien kokonaismäärä että haluat kääntää.
ROB: Ja ero tavu ja vähän on se, että
ovat 8 bittiä tavun.
Joten sizeof (int) palauttaa 4 tavua, meidän täytyy kertoa, että
8 saada 32 bittiä.
>> ALI: Okei, joten tiedämme suurin ja tiedämme haluamme mennä -
Haluamme käydä läpi niitä kaikkia.
Niinpä haluamme mennä 0-numBits.
Joten ei kukaan tiedä, miten kirjoittaa silmukan siihen?
Kukaan?
SPEAKER 43: [kuulumattomissa]
ALI: Joten haluat kulkea numero i: nollas bitin
Ensimmäinen bitti, toisen bitin, kolmas bitti, aina numBits.
Max bittimäärä, että voit saada.
ROB: Mitä yhteistä silmukan käytämme mitä haluamme tehdä jotain x kertaa?
ALI: For.
Perfect.
Joten meillä on.
Ja sitten me luoda iteraattori, joka ei tule olemaan i.
ROB: j.
ALI: J = 0.
Joten aloitamme klo 0.
Ja sitten me aiomme olla ehto varmistaa, kun olet
menee läpi joka ikinen kerta -
[Väliin ÄÄNTÄ]
ROB: j.
ALI: j on pienempi kuin numBits.
Joten emme halua tehdä todellista on yksi, koska he numBits
yhteensä, ja aloitamme klo 0.
Joten olemme todella menossa on -
SPEAKER 44: Oh.
ALI: indeksit eivät pääty numBits miinus 1.
ROB: Me nimetä bitit 0-31, emme tunnisteella 1-32.
Ali: Ja sitten me aiomme kasvattaa joka kerta yhdellä, koska haluamme
tarkista joka ikinen.
Joten menemme j + +.
>> SPEAKER 45: Miksi ihmeessä?
SPEAKER 46: Miksi olet menossa läpi jokaisen bitin?
ROB: Eli haluamme käydä läpi jokaisen bitin ja -
Joten Sanotaan meillä on numero.
ALI: 68.
ROB: Voimme käyttää 68.
Joten binary tulee olemaan 100100.
Joten tämä on sisältä I ja haluamme mennä kullakin näistä biteistä.
Onko se 1?
Tulosta 1.
Onko se 0?
Tulosta 0.
Sitten menemme seuraavaan bitti.
Onko se 1?
Tulosta 1.
On 0?
Tulosta 0.
ALI: Cool, okei.
Nyt me olemme oikeassa indeksi missä että vähän on.
Miten voimme tarkistaa, että tietty yksi?
Sanotaan me olemme j = 0, joten haluamme tarkastaa 0 indeksi bitti.
Joten tässä tapauksessa, tämä yksi.
>> Joten nyt miten voimme edetä tarkistaa - Voi, se olisi tämä.
ROB: Joo.
ALI: Anteeksi.
Miten voisimme mennä tarkistaa, että yksi, tavallaan?
Miten voimme tarkistaa, jos se on 0 tai 1?
Hyvin let's -
LUOKKA: Ja 1?
Ali: Ja?
Joo.
ROB: Joten Sanotaan meillä on jo 1.
Sitten tämä &, tämä palaa oliko se 1 tai 0.
ALI: Joten voimme mennä alas.
Ja voimme tehdä te sanonut, tehdä ja funktio.
ROB: int -
Miten haluan sanoa tämän -
Isone = i.
Ja ensimmäinen bitti satumme katsot, teemme I & 1.
Nyt mitä aiomme halua ja jota toisen bittinen?
SPEAKER 47: 2.
ROB: Joo, toinen että olemme 2.
ALI: Huomaat, että 1 on siirtynyt vasen.
Joten olemme oppineet mitään bittioperaatioiden tehdä tämän tehtävän?
ROB: seuraava -
ALI: Joo, aivan.
Joten se vasen muutos.
Sen sijaan aina tarkkailun 1, aiomme siirtää sitä.
Ja kuinka monta kertaa aiomme siirtää sitä?
Jos me tarkkailun nollas yksi sitten aiomme siirtää sen yli nollan.
Joo, aivan.
Joten jätit siirtää sen j.
Perfect.
Joten nyt me tiedämme -
meillä on tämä INT jos se on 1, ja sitten -
joten Rob tavallaan huijausta täällä -
joten nyt hän oli menossa eteenpäin ja hän vain sanoi, että jos se todella on 1,
koska 1 on tosi, joten meidän ei tarvitse sanoa ISF Isone on 1 -
joten jos Isone, niin me painamme 1, ja muuten me painamme 0.
>> ROB: Joten meidän ohjelma on yleinen vika.
No, kysymyksiä tämän ensimmäisen.
SPEAKER 48: Voitko koskaan laittaa Isone sisällä neljä toiminta-osa ja
sitten se siirtää itsensä loppuosa?
Joten Isone on 1, ja sitten -
ROB: Kyllä voit.
Voimme todella osoittaa, että kun me korjata vika, että olen aikeissa
keskustella teidän kaikkien kanssa.
Huomaa järjestys menemme yli asioita.
Koska tämä binääriesitys, aloitamme kanssa nollas bitti.
Jos se on 0, niin me tulostus -
No, se on 0, joten tulostettaessa 0.
Sitten menemme toisen bitin.
Se on 0, joten tulostaa 0.
Sitten menemme kolmas bitti.
Se on 1, joten tulosta 1.
Ali: Niin se menee taaksepäin.
Joten miten te ehdottaa, että me korjata sitä ja mennä toiseen suuntaan?
SPEAKER 49: [kuulumattomissa]
ROB: Joo.
Joten sen sijaan menee 0: sta numBits, me mennä numBits bittiä 0.
Ali: Niin [kuulumattomissa]
voi aina mennä toiseen suuntaan.
ROB: NumBits miinus 1, koska se on viimeinen nubmer -
ALI: Koska se menee 0-31.
Ja sitten me aina varmista, että se on suurempi kuin 0 niin et mene
liikaa oikealle.
Ja sitten voit aina vähentää 1 mennä oikealle.
>> ROB: Eli nyt meillä on käänteinen silmukka, ja määrä on takaisin tulostus
oikealla tavalla.
SPEAKER 50: Eikö teillä vaihtaa shift juttu myös?
Ali: Niin no.
ROB: Teemme täsmälleen sama toiminta, paitsi nyt
päinvastaisessa järjestyksessä.
Joten sen sijaan tehdä Siirtämällä numBits miinus 1 saada mitä tähän
vähän on, eikä tehdä että viime, me vain tehdä se ensimmäinen.
Kääntämällä tätä täällä, meidän kääntää järjestyksen kaiken
että sisällä tapahtuu.
Mutta emme halua muuttaa mitä sisällä tapahtuu ollenkaan.
ALI: Onko järkeä?
Jalostus?
Okei, joten ei kukaan muu ole muita käsitteellisiä kysymyksiä?
ALI: Ennen kuin menemme hänen piste, joka on -
ALI: Selvä, hyvin mene.
Rob: Sen sijaan käyttää j on meidän -
sijasta j aina siirtyvän, kuten yksi vasen shift j, luulen
sanot on kuin, että J käyttää itse.
Joten j -
Kai tämä on kova - j = 1 << 31.
Sitäkö haluan?
Minusta se on << 31.
j> = 1.
J >>, >> Isone, I & J -
joten nyt sijasta -
ALI: Olet jatkuvasti liikkeessä j sijasta ottaa
indeksi tarkistaa sen.
Se ei ole niin paha.
Käytämme samantyyppinen logiikkaa.
Joten jos palaat -
Voi, mutta se tulee menettää sitä.
Okei, olet juuri menossa kirjoittaa sitä uudelleen.
Jos huomaat, että meillä on 1 << j määrän kertoja, ja olimme
lisäävä j joka ikinen kerta askeleen verran, mutta tällä kertaa sen sijaan
he tekevät lisäys j yläosassa sisäpuolella varten silmukka.
Joten sen sijaan aina liikkuu alas -
ROB: ensimmäinen iterointia varten silmukan, meillä j on 10000.
Seuraavan iterointia varten silmukka on 01000.
Seuraavan iteraation on, että.
Ja 1 on juuri menossa pitämään lisäys kunnes osuimme hyvin
loppuun, jos nyt se on tässä.
Seuraava, 1 aiotaan työnnetään pois, ja j on enää suurempi
tai yhtä suuri kuin 1.
Voisin myös laittaa suurempi kuin 0, sama ero.
Ja sitten se on siinä.
Kysymyksiä?
Joo.
>> SPEAKER 51: [kuulumattomissa]
ROB: Niin, että sama kuin -
oletko nähnyt j + = 3?
Joten tämä on sama kuin j = j + 3?
Voit tehdä, että lähes kaikki operaattorin C. Joten J >> = 3 on
yhtä j = j >> 3.
Niin että toimii myös bittioperaatioiden.
Ja Minun ei olisi pitänyt laittaa 31 täällä.
Minun olisi pitänyt laittaa numBits - 1.
ALI: Jee, no Magic Numbers.
Okei, se on 4:00 vaikka, joten jos teillä mennä - mutta tämä järkevää?
Onko teillä muita kysymyksiä?
ROB: Olin myös menossa heittää, että jos me halusimme -
on hän keskusteli ternäärinen operaattori ollenkaan?
ALI: Ei
Se on okei.
ROB: Joten voi tutkia sitä ensi kerran.
ALI: Okei, oikeasti?
Nyt olet vain komeilu.
ROB: Ei, nyt Se on -
Tämä on mitä saa ihmiset kiinnostumaan, ja nyt he menevät tutkimaan sitä.
Joten nyt, että ei sama asia, yhdessä vaiheessa.
Joten tarkista ensin, on I & J 1?
Onko se totta?
Jos on, niin tulosta 1, muuten, tulosta 0.
ALI: Mutta teemme sen toisella tavalla on täysin hieno samoin.
Se on sama logiikka.
Joten se ei ole kuin yksi -
ROB: Tässä vaiheessa voimme päästä eroon näistä aaltosulkeita, koska se on ainoa
yksi linja silmukka.
ALI: Okei, joten ei se järkevää?
Se oli eräänlainen hypätä.
Mutta se oli vain eräänlainen syntaksin, enemmän.
>> Cool?
Muuta kysyttävää?
ROB: Selvä.
ALI: Selvä, viileä.
Kiitos kun tulit kappale.