[Powered by Google Translate] [ELECTRONIC STATIC SOUNDS]
ROB: Oké, szóval amit most hozott, hogy a CS50 Spaces.
ALI: Várj, várj vissza.
Üdvözöljük a részt!
ROB: Üdvözöljük a részt!
ALI: Yay!
ROB: szuperszakasz!
ALI: Én vagyok, Ali és ez Rob.
Oké, most fogunk magyarázni Spaces.
ROB: Szóval, amit most hozott, hogy a CS50 Spaces.
Nem lesz ezzel a sok a szakaszok ebben a félévben.
Alapvetően, mi már volt akkor le a készüléket.
És azt lehet gondolni CS50 terek, mint egy webes felület beszél egy készülék
hogy van néhány szerver valahol.
Szóval lehet futtatni a kódot ezen a felületen, és mi
hogyan kell csinálni a dolgokat.
Azt is nézd meg a kódot más emberek abban a részében, valamint -
ALI: És néhány ember rájött, cseveghet az embereket az oldalon.
És mi mind látni is, annak érdekében, hogy ez izgalmas.
Gyere be, gyere és ülj le.
Vegyünk egy helyet.
>> ROB: Szóval, szakaszok -
ALI: Nem, nem, srácok tud jönni.
ROB: szakaszok lesznek sokkal több interaktív ebben a félévben.
ALI: Ó, ő olyan, mint -
Oh.
Oké, király.
Tehát, ha ti csak most jön, akkor menjen meg ezt a linket, ha tudok
ott, ott.
Nem tudjuk igazán írni, mert nincs tábla helyet, de ezt a linket
itt, menj, hogy a számítógépek, és akkor írja CS50
Spaces, ami elég jó dolog.
Oké.
Van valami probléma?
ROB: Szóval megtalálja a problémákat -
van szükségünk ahhoz, hogy írni ezt valahol.
Tehát, ha megy cs50.net/psets, és ez a hacker szuperszakasz -
és te menj be a Hacker Edition Pset egy, nézd meg a specifikáció
valahol oldalon -
>> ALI: Tehát alapvetően, míg Rob látszó, mit fogunk csinálni
pont ma van egy szakasza a problémák -
ROB: - oldalon nyolc.
ALI - úgynevezett szakasz problémák -
ROB: Section kérdésekre.
ALI: Sajnálom, egy részét kérdésekre.
És azok mit fogunk menni át -
ezek mit fogunk menni át ma részben.
És fogunk kódolni azt CS50 Spaces, és remélhetőleg, hogy működni fog.
És mi lehet csak beszélni rajtuk keresztül.
És ti srácok lehet kérdéseket feltenni, ha úgy érzi, -
>> ROB: Tehát ez kezd, hogy egy közös dolog, a legtöbb psets.
Azt hiszem, ezt, azt mondja, nem kell átadni ezeket a kérdéseket be
De az elképzelés az, hogy ezek a kérdések kerülnek a Pset, és akkor jön
szakasz, hogy ezekre a kérdésekre válaszol.
Vagy ha nem jön szakasz, akkor válaszolni őket a saját, vagy kap
Segítse a munkaidőben, vagy ilyesmi.
De ezek azok a kérdések, amelyek állítólag prep Önnek a probléma halmaz.
És a hacker kiadás, sok a kérdés, hogy csak körülbelül
bővül a jelenlegi CS tudás.
ALI: Igen, elég sok.
>> Oké, mindenki a CS50 Spaces?
Szia, gyere be
SPEAKER 1: Láthatjuk az URL-címet még egyszer?
Rob: Igen, ez könnyebb lesz, ha már ténylegesen a szakaszok, és
A TF is csak e-mailben az URL előre.
ALI: Yay, foglaljon helyet.
Vannak helyek itt.
Az első nem is olyan rossz.
Mi az?
Szóval, CS50 Spaces, mi egyre ott.
Van valakinek bármilyen kérdése, mielőtt bejutni - mit?
ROB: Nincs még semmilyen kréta.
[Hallhatatlan]
ALI: Elnézést.
Lehet használni a körmök?
Vagyunk egy nagyon low-tech szoba egy nagyon high-tech osztály.
Oké, mindenkinek ilyen jó?
Van valakinek még kérdése van ez?
Ahogy már mondtam, megyünk végig a részében kérdések
A Pset előírásoknak.
Tehát ez csak egy pár a problémákat, hogy fogunk
kódolásához fel CS50 Spaces.
Mindenki jó?
Oké.
Jó?
ROB: Van egy laptop?
ALI: Akkor lógni Lucas.
Ő ül melletted.
Kötési idő.
>> ROB: Szóval, kezdődik az első probléma?
ALI: Igen.
Mi lehet kezdeni.
Akarod, -
Tudok menni.
Szóval, megyünk a Pset szemüveg.
Oh, miért -
ROB: Control.
ALI: Oké, akkor megyünk bele answer ezeket a dolgokat is?
ROB: Ó, igen.
So -
ALI: Oh, ugye mindenki karóra Rob főszereplésével nadrág?
Oké, király.
ROB: Igen, nem hiszem, hogy feltétlenül elvárható, hogy van
nézte, mielőtt e szakasz, de mi lehet vitatni azokat
problémák előzetesen, mivel ezek alatt a szakasz a kérdések dolgok.
Tehát ha még nem nézte meg, ne aggódj.
Azok, akik kipróbálhatják és válaszolni.
>> Szóval, az első kérdés, hogy mi van egy pre-processzor, hogyan # include
vonatkoznak?
Tehát csinál akárki volna választ, hogy a?
ALI: Srácok tud beszélni azt.
Persze, menj csak.
SPEAKER 2: # include van néhány előre megírt kódot, és ahelyett,
másolás és beillesztés, hogy a programban, az csak azt mondom közé azt,
a pre-processzor tudja, hogy ott van, és hogy meg kell adnia azt a
később, vagy mielőtt bármi más történik.
ALI: Igen, félelmetes.
Cool.
ROB: Tehát, amikor tényleg összeállítása a program, a pre-processzor ez
az első lépést.
Összeállítás történik négy nagy lépést.
Tehát a pre-processzor az első nagyot, és ez a fickó, hogy megy
keresztül, és úgy néz ki az összes ilyen hash szimbólumokat.
És minden sor, hogy kezdődik a hash, a pre-processzor ránéz, és látja,
ha ez feldolgozni.
Szóval # include utasítja a pre-processzor keresni néhány cs50.h
Fájl és csak másolja a tartalmát ezt a fájlt.
Szóval, akkor tényleg # include amit akarsz, de ez leginkább lesz
. H fájlokat.
Még nem ütött a # define mégis úgy, hogy nem számít.
ALI: Igen, jók vagyunk, hogy az egyik.
Van valakinek bármilyen kérdése erről?
Vagyunk jó?
Következő kérdés.
>> SPEAKER 3: Rövid, volt valami. C is?
Van, hogy a vonatkozó, vagy ez lényegtelen?
ROB: Rólunk. C, a pre-processzor?
SPEAKER 3: Igen, vagy nem teszek valamit?
ROB: Tehát a rövid lehetett volna mutató pre-feldolgozás ezt a fájlt, és
kimenetre egy másik. c file, így előre feldolgozni ezt a fájlt -
ha éppen fut, mint, hogy helló vagy csenget hello.c, akkor mindent megtesz
összeállításához egy nagy lépés.
De akkor kifejezetten csinálni bele önálló lépéseket.
Tehát először is előre feldolgozni.
Akkor fordul le, akkor össze, és akkor lehet kapcsolni.
Majd kap a többi is.
De előkezelést, akkor milyen megelőző folyamat, és akkor megy
egymással. c fájlt.
Mivel a pre-feldolgozás nem igazán változtat semmin.
Ez csak egy rakás másolás és beillesztés.
Lehet kézzel másolja és illessze be magad.
ALI: És hogy tisztázzuk, a. C fájl egy C fájl, így
C-ben írt kódot.
Szóval megy a C kódot C kód.
Te csak hozzá több kódot a font.
ROB: Ha előre feldolgozott, ez még mindig egy érvényes C fájl.
SPEAKER 3: Rendben.
ALI: Jó kérdés.
Ez tetszik.
Oké, a következő kérdés.
>> Mi a fordító?
Valaki?
Igen.
SPEAKER 4: megváltoztatja a előkezelt kódot szerelvény.
ALI: Perfect.
ROB: Igen.
ALI: Cool.
ROB: Tehát ez az, amit a fordító csinál kifejezetten
amikor mi használ csenget.
Egy nagyon általános értelemben, a fordító, mint vesz-kód egy nyelven
és fordult be egy másik nyelvre.
Tehát C -
vagy, nos, csenget vesz kódot, ami a C és átalakítja azt a szerelvény.
És nem kell, hogy képes legyen megérteni a gyülekezési egyáltalán.
De ez a nyelv, hogy ez alakítását.
>> ALI: Oké.
És akkor, mi összeszerelő?
Valaki?
SPEAKER 5: [hangtalan] bináris?
ALI: Bocs, mi van?
SPEAKER 5: [hangtalan] bináris?
ROB: Aha.
ALI: Igen.
ROB: Tehát az assembler -
assembly kódot nagyon, nagyon közel ahhoz, amit a számítógép képes megérteni,
de ne feledjük, hogy nem egészen értem a szöveget
ez assembly kóddal.
Be kell alakítani egyenesen 1 és 0.
Ez olyan, mint a közvetlen fordítási folyamat.
Mi is csak ad egy táblázatot, amely a térképen, amit az egyes
szerelési utasítást jelent.
De az assembler éppen ezt fordítást az Ön számára.
Ez átalakítja a gyülekezési kódot 1 és 0.
>> ALI: És akkor, az utolsó, mi az a kapcsoló?
És hogyan-lcs50 vonatkozik?
Valaki?
ROB: Ez a legnehezebb és a legkevésbé magyarázni egy a fordító videó.
ALI: valaki emlékeznek-lcs50 a parancs?
SPEAKER 6: Amikor elment a tenni.
ALI: Ez a tenni.
Ja, jó, oké.
Van-e olyan találgatások vagy bizonytalan - igen, megy.
SPEAKER 7: Nem vagyok benne biztos, mert a rövid távú volt igazán [hallható], de volt
valamit csinál külön fájlban minden könyvtár, majd üzembe
őket együtt, egy könyvtár?
ROB: Igen.
Tehát, ha van hello.c, ez egy nagyon egyszerű program.
Te tényleg csak csinál egy dolog benne.
De ha kap más programok -
és azt hiszem, még akkor is, getString a programokat, meg kell kezdeni
beleértve más fájlokat.
Tehát a CS50 könyvtár is egy ilyen fájlt, amely már a megvalósítás
A getString és getInt és az összes ezeket a dolgokat.
Szóval, mi a linker nem ez megy körbe nézegette mindezen
kép, hogy hol funkciók meghatározása, ügyelve arra, hogy amikor hívom
GetString valahol, mert tudja, hogy getString azt jelenti, hogy ez a
GetString át a CS50 könyvtárban.
Tehát a linker csak úgy ezeket a fájlokat, összetöri őket, és most
van egy végrehajtható.
Tehát ne feledje, ha a CS50 könyvtár van szükség mind a
# Include a tetején, és akkor is a make parancsot, mint te
azt mondta, van, hogy a-lcs50.
Így nem csak egy van.
Szóval ez csak valami, hogy tartsa szem előtt a jövőben is.
>> SPEAKER 8: Nos, mondjuk volt egy másik könyvtárba, mint cs51.h, tennénk
is hozzá kell-lcs51?
ROB: Az egyetlen ok, this-lcs50 tökéletesen működik, azért van, mert van, hogy meg
fel egy adott helyen a készülékeket úgy, hogy tudja, mit
-Lcs50 eszközökkel.
Mi is csak kapsz egy cs50.c fájlt, akkor lehet fordítani, mondván:
Zengés hello.c cs50.c, és akkor ez, hogy a futtatható azáltal
e két fájl együtt.
Tudja, hogy a-lcs50 jelenti cs50.c át néhány könyvtárban, hogy meghatározott
A készülékek.
Tehát, ha volna egy cs51.c legyen meghatározható az csak azt mondom, lcs51,
akkor azt is meg kell tenni azt, hogy a könyvtárban, így tudja, hogy hova
nézd azt.
ALI: Mi volt a kérdés?
>> SPEAKER 7: Miért kell csatolni a CS50
ha - wasn't hogy bemásolod / illeszti az első lépés, ha előre feldolgozott ez?
ALI: Szeretnéd, hogy vegye meg?
ROB: Persze.
Tehát a cs50.h fájl elkülönül a cs50.c C fájlt.
Már ütött működni prototípusok osztályban?
Oké.
Tehát alapvetően a cs50.h fájl csak fog másolni és beilleszteni -
ALI: Nem tudjátok, mit aláírás?
Oké, szóval elég sok, ha megnézi -
ROB: Tegyük cs50.h nincs ott.
Most ezt a fájlt -
csinálsz sztring s = getString.
De amikor mi már ütött, hogy ezt a pontot a kódot, akkor fogalma sincs, mit
GetString van.
Tudja, hogy ez a funkció, mert te hív meg.
De nem tudja, hogy ez valójában kellene, hogy visszatérjen egy string.
Szóval, mint mondtam, string s = getInt, ez nem semmi értelme, mivel az
Ön aláírása értéke egy string.
De nem tudja, hogy getString nincs értelme, mert nem
tudom, hogy getString vissza string.
Tehát mi cs50.h mond valami ilyesmit.
ALI: Tehát mi Rob gépel van, ez egy ígéret, olyan módon, hogy ez lesz a
rendelkezik ezzel a funkcióval nevű getString.
ROB: Ez minden, cs50.h a másolás és beillesztés itt, valamint
A getInt és mindazoknak, akik a dolgokat.
És ez csak azt mondja, hogy nem getString vissza string.
Azt nem tudom, hogy ez végre még, de ha eljutunk ezen a vonalon, most
tudja, hogy helyesen vissza string.
>> SPEAKER 9: Szóval, ha nem zavarja a # include dolog, és helyette
csak írtam a prototípus az is, hogy mi valójában fog használni?
ROB: Igen.
Szóval futtatásához.
SPEAKER 9: Valóban?
Szóval, alapértelmezés szerint, akkor tegye a-l, hogy csak azért, mert CS50 -.
ROB: - kifejezést.
ALI: Igen, mert ahogy ön is mondta, hogy ez a márka fájlban.
ROB: cs50.h is előfordul, hogy a typedef char * string.
Akkor teljesen figyelmen kívül hagyja, hogy ez mit jelent most.
De ez is valami szerepel cs50.h.
Tehát most a dolgok tökéletesen működött jól.
Ez fut pontosan ugyanaz, mint akkor volt, amikor már csak volt
Az # include.
És így többek cs50.h történik over-include dolgot kell -
hasonló, ha nem használja a getInt ebben a programban, de ez nem számít.
Ez lesz csak figyelmen kívül hagyja azt.
ALI: És akkor, ha nem a-lcs50 ide, és itt, mi folyik itt
az az, hogy ez, amelynek a tényleges végrehajtható kódot.
Szóval ez az, ahol valójában, ezzel a -
írni a kódot getString.
Tehát ez nem csak egy ígéret többé.
Ez tulajdonképpen megy keresztül, és az a húr és minden ilyesmi.
Értelme?
Kérdései vannak? Rendben van.
Cool babot.
>> ROB: Most tudunk lépni a tényleges kódot.
ALI: Oké.
Tehát itt van az első probléma.
Szóval azt mondja, levelet egy programot, amely figyelmezteti a felhasználót a kisbetűs
levél, majd átalakítja a nagybetűs használata nélkül bitenkénti
műveleteket, mint egy a minta kibocsátás alatt.
Így láthatjuk, futtatja a programot a. / A.out, majd te
megy, hogy kisbetűvel a,, majd a program adja ki a tőke
A. Akkor miért nem vagytok mind, hogy ez egy lövés CS50 Spaces?
Szóval ti mind ide.
És akkor törli az összes kódot itt.
És akkor megy előre, és elkezdeni kódolni a dolog.
ROB: Akkor érdemes használni GetChar, ez
tartalmazza a CS50 könyvtárban.
ALI: Azt hiszem, hogy talán jobb lenne, ha menteni a felső rész.
Szóval érdemes csak megváltoztatni a dolgokat a közepén.
Menj előre, és működik.
Nyugodtan dolgozni egymással.
Rob: És akkor kérdéseket feltenni, ha -
>> SPEAKER 10: Mi az a bitenkénti művelet?
ROB: Nos, figyelmen kívül hagyja, hogy ezt a problémát.
ALI: Ha nem tudod, hogy ez jó.
ROB: fogjuk használni a következő probléma.
De ha nem tudod, mi az a bitenkénti operátor, ez rendben van.
SPEAKER 10: Olyan, mint forgatva ASCII kódot?
ALI: Nem
ROB: Nem
Megteheti, hogy erre a problémára.
SPEAKER 10: Hogy csinálod ezt?
Tehát, ha csak kellett valahol írni -
ALI: Vagy valamit az íráshoz.
ROB: tudtam, csak egyfajta típusú ebbe.
ALI: Írja be a tetején.
ROB: Oh, ülök egy mikrofon.
>> Tehát láttuk, hogy az előadás ASCII értéke tőke A jelentése 65.
És tőke B lesz 66, és így tovább.
Így szó használata az "A" jelenti a szám 65.
Mint ez az érték 65.
Meg tudom csinálni valami hasonlót int x = 100 - "A". És most x lesz az érték
100-65.
ALI: futtathatja ezt, és azt mutatják, hogy.
Oh, talán nem.
Semmi baj.
ROB: kellett kinyomtatni.
SPEAKER 10: Hogyan kapcsolja vissza a karaktert?
ALI: Tehát, ha nem -
csak kényszeríti, hogy legyen char A, egyenlő.
ROB: Szóval van egy -
a különbséget a char és az egész csak méret szempontjából.
Így egy egész szám történetesen képviselni tudja a dolgokat
a, mondjuk, négy milliárd euró.
A karakter csak akkor tudja képviselni a dolgokat egészen 255-ig.
De nincs köztük különbség más, mint ez.
Szóval mondhatjuk char c = 65.
Ez egyenértékű mondván: char c megegyezik az "A".
ALI: Oh, nem.
Ez valójában nem menteni a dolgokat.
ROB: Nem, ezt nem teheted ezt.
ALI: Ez csak -
[GROANS]
>> ROB: Oké, akkor mi Ali csak írt egy programot, amely kinyomtatja 1. 100 -
"A", mint egy egész, ami 35, ahogy várjuk, mert 100 mínusz az ASCII
értéke a 65.
Aztán kinyomtatható a% c, ami azt jelenti, értelmezi, mint egy char.
Tehát 100 - a 35.
Értelmezése, hogy mivel egy karakter történik, hogy a hash szimbólum.
Ha megnézed asciitable.com vagy bármi, akkor láthatjuk, hogy 35 a
hash szimbólum.
ALI: Oké, egyéb pontosításokat a probléma?
Oké, srácok, lehet menni előre, és nem akkor.
Nyugodtan kérdéseket feltenni vagy beszélgetni egymással.
Vagy ha már megtette, akkor nyugi.
>> LUCAS: Vajon azonos osztályba tartozó, a kisbetűk rendben vannak, és
továbbá a nagybetűs is azért, mert ez valami hasznos
a probléma.
ALI: Jó pont, Lucas.
Szóval, srácok, mind ezt?
SPEAKER 11: Igen.
Ez hogyan csinálod, ugye?
ALI: Így van.
ROB: Igen.
SPEAKER 11: [hangtalan]
ALI: Rendben.
ROB: Mi a kérdés kérdezi?
Csak átalakítani -
ALI: Convert A kisbetű a nagybetűs.
Ennyi.
ROB: Oké.
ALI: kéne írni?
Azt hiszem, akkor csak nézd meg valaki másé.
ROB: Tehát azok számára, akik esetleg beragadt, oly módon -
ha van valami char c, és mondjuk, hogy előfordul, hogy a levél D.
Tehát most hogyan tudok rájönni, mi betűvel C?
Nem D, de én értem, D történik, hogy a negyedik betű az ábécé.
És ha elkezdünk számolás 0-tól, akkor a harmadik betű az ábécé.
Tehát, ha A 0, B 1, C 2, D 3, hogyan tudom kitalálni int álláspontja -
milyen pozícióban az ábécé C van?
Van valakinek valami ötlete?
ALI: Azt hiszem, mindannyian kódolás.
ROB: Mi az első?
SPEAKER 12: Tehát bármi A, vonjuk ki az első?
ROB: Igen.
ALI: Igen, félelmetes.
Szóval tehetne tőke D -
Ó, sajnálom.
Te meg a karaktert, és vonjuk ki az első, ahogy mondta.
ROB: Tehát ha D valami ilyesmi 68, és mi vonjuk A, mely 65, akkor kap
3, azt mondja, hogy a D a harmadik betű az ábécé
Induló 0.
Szóval lehet használni, hogy.
Most már tudjuk, hogy mi betűvel, tekintve
nyomtatott betűvel, vagy -
tehetnénk ugyanezt a kisbetűs, hogy kitaláljuk, mit
kisbetűs álláspont vagyunk hüvelyk
És mi is használni, hogy majd átalakítani, hogy a nagybetűs használatával
nagyon hasonló ötlet.
Kérje javaslatok?
>> ALI: Srácok - Várj, nem tudom, milyen messze vagytok.
Most a legtöbben kész, még mindig dolgozik, Ön beragadt?
Ti is kiáltani -
beragadt.
Egy ember beszorult.
Cool.
Én inkább beragadt is.
SPEAKER 13: kész vagyok.
ALI: Te csináltál?
Oké.
Kész.
13 hangszóró: [hangtalan]
ALI: Igen, jó.
Ön ellenőrzi, hogy ez a kisbetűs formában?
Oké, király.
Hol van a többi ember?
Hasznosnak ezt tipp segít, mint un-ragasztás magad?
SPEAKER 14: Nem igazán, de csak azért, mert nem tudom, nem vagyok
emésztő még.
ALI: Oké, király.
Szeretné kipróbálni -
vagy nem akarsz menni és beszélni?
>> ROB: Azt akartam mondani -
így használatával.
Érted, hogyan jutottunk milyen pozícióban az ábécé
a levél van?
SPEAKER 14: Oké, így amikor a dolgokat egyetlen idézet,
hogy visszaad egy számot?
ROB: Igen.
Ez lesz lefordítva az ASCII értéket képvisel.
Szóval, nem akarsz menni ASCII tábla vagy akármi is?
ALI: Csak egy ilyen?
ROB: Aha.
Szóval, ha fel sem jelentenek ezek a jelek, figyelmen kívül hagyva egy csomó -
ALI: [hangtalan]
ROB: Ó, a kurzor.
ALI: Igen.
Ez izgalmas volt.
ROB: Szóval, figyelmen kívül hagyva ezek közül a bal oldalon, amelyek a speciális szimbólumok -
ha tesz ezek bármelyike ​​szimbólumok aposztrófot, akkor lesz
fordítva ez az érték a bal oldalon.
ALI: Ez a decimális szám érte.
Ez olyan, mint egy mérkőzés, 65, B 66, és észre fogod venni, hogy ők mind
ábécérendben, ami a különbséget.
Szóval, ahogy Rob mondta, korábban, a kódot, voltunk kiszámításának távolság
Az első levél, per se.
És ez lesz ugyanaz, függetlenül attól, hogy nagy-vagy kisbetűs.
ROB: Tehát amikor megcsináltuk D, 68 mínusz egy, 65, akkor kap 3.
Mivel a D-három pozíció az ábécé.
ALI: Tehát akkor hogyan kíván fordítani, hogy több mint, hogy megtalálják a kis d?
ROB: Igen.
Szóval, ha van 3 most tudom, akarok menni három levelet a -
mi történik, hogy megy kisbetű most, de mondjuk szeretnék utazni 3
pozíciók a kisbetűs oldala a dolgoknak.
Szóval, hogyan tudom megtenni?
Tudom, hogy van egy kisbetűs 97.
Szóval hogyan találom meg három pozíció a kisbetűk?
>> SPEAKER 15: Van egy kérdésem valójában.
ALI: Igen, folytasd.
SPEAKER 15: Tehát ezt, nem igazán számít, ha tudom, hogy ezt az álláspontot,
tetszik, nem kell ebben a táblázatban.
ROB: Nem.
Te soha nem kell használni minden ilyen számokat.
És ez egy fontos pont a programokban, hogy soha ne keményen
kódolásához ezek bármelyike ​​állandók.
Használja a 'A'. soha ne használjon 65 vagy 97.
ALI: Azok az úgynevezett mágikus szám, és ők nagyon zavaró.
Mint, amikor hibakeresés egy kódot, akkor lehet, hogy nem emlékszem, mit
használt őket.
És nekünk osztályozási kódot, akkor nem igazán tudom, mit
Ön használja őket.
Tehát jobb, ha valóban használja a karaktereket, így teszi
több értelme van az embereknek.
Oké, más kérdés?
Ön több embert tenni, vagy -
Azt hiszem, tudjuk ellenőrizni.
Ez igazán hátborzongató, hogy lássuk az emberek kódot.
ROB: Igen.
Nem kell tennie, hogy itt.
Nem tudjuk, hogy az emberek nevét sem.
ALI: Ó, igen, jól teszi, hogy a jobb, így lesz még elfogulatlan
ahelyett, hogy csak véletlenszerűen szedés valakit.
Ne aggódj.
Nem fogom megtenni.
Ha random dolgot - mindegy.
Oké.
Hogy az emberek csinálnak?
>> SPEAKER 17: Tehát a 9. sorban kell kinyomtatni a karakter?
ROB: Igen.
ALI: Igen.
Szóval, ha lemegy -
ROB: Oh, nem tehetem.
ALI: Látni fogod, hogy a nyomtatott hash szimbólum.
SPEAKER 17: Ó, oké.
ROB: Azt hiszem, más módon lehet nézni a dolgokat a mi nyomtat
karakter.
Először egy vagyunk nyomtat a levél A.
A következő egy mi nyomtatás mindössze 65.
Ez valószínűleg kiabálj velem ezen.
Tehát ha csak futtatni ezt, észre fogod venni, hogy kiírja A mindkét alkalommal.
Mert kérünk, hogy ugyanaz a dolog.
Kérünk, hogy nyomtassa ki a levelet A. És akkor kérünk, hogy nyomtassa ki a
szám 65 értelmezni, mint egy karakter, ami ugyanaz a dolog.
ALI: Van valami mondanivalója?
Ó, csak vicceltem, bocs.
Rendben, hogy az emberek -
ROB: Mi tud csak járni rajta.
>> ALI: Oké, akkor hogyan kezdjem?
Valaki?
Mint egy tipp, van, hogy valamit kapjunk az emberek, a typers.
SPEAKER 18: [hangtalan]
ALI: Ó igen, a gyors, tökéletes.
Szóval mi írjuk -
mit írjon?
Valaki?
Vagy csak írja?
Vagyunk valójában gépelés a -
ROB: Persze.
ALI: Tehát akkor írja printf, hogy jelezzen, így lehetünk
tetszik, adj egy karaktert.
Oké, és akkor mi lesz?
Miért csinálja ezt?
ROB: Nem tudom.
ALI: Oké.
Szóval most, mi azt mondta nekik, hogy adjanak nekünk egy karaktert.
De akkor hogyan lehet, hogy tényleg kap, hogy a karakter?
SPEAKER 19: Használat getString.
ALI: getString?
GetChar?
Oké, mi a különbség egy húr, és a char?
SPEAKER 19: Strings egy sor, mint egy sor karakter.
>> ALI: Cool, igen.
Tehát ezt a problémát, csak akkor kell figyelembe venni egy karaktert egy időben, így a
mi csak csinálni GetChar e például.
ROB: tudtuk végrehajtani a funkciót, ha azt akartuk, hogy volt egy teljes szöveg
és odament a húr és megváltoztatta csupa kisbetűvel a nagybetűs, és minden
nagybetűs kisbetűs lesz.
De itt, mi csak kérdezem egy karaktert.
ALI: Tehát most már a karakter itt, de akkor meg kell menteni.
Így aztán hozzá char c - mit?
SPEAKER 20: Adjuk meg a változó.
ALI: Igen, pontosan.
Tehát a karakter.
ROB: Azt hiszem, lehet, hogy -
te csak három terek, ezért ez kiabál veled.
>> ALI: Oké, cool, most, hogy már bejárási állhatatos, mi történik ezután?
Mi a következő lépés?
ROB: Mi az a program kell tenned, hogy változik a kisbetű egy
nagybetűs.
Mit tegyek, ha történetesen be a hash jel?
Ez -
ALI: Ez egy jó jel.
Arra használjuk, hogy egy csomó.
ROB: Az, hogy egy érvényes dolog, amit lehet konvertálni egy nagybetűs formában?
SPEAKER 21: Nem.
ALI: Nem
Meg kell ellenőrizni, hogy.
Tehát van egy if utasítás ellenőrzi, így ha a c-nél nagyobb
vagy egyenlő a kis 'a'-
így ha megnézzük a táblázatot, észre fogod venni, hogy kell lennie között itt,
A 97, és a kisbetűs egy.
, És ez lehet bármely ilyen, és lépésekben egészen le.
És akkor ott van Z 122.
És azt, hogy esik a két érték között.
Van ennek értelme?
ROB: Tehát, ha c nem között 97 és 122 -
vagy soha nem kell használni ezeket a számokat - ha c nem között "a" és
"Z", akkor ez nem érvényes karakter számunkra nagybetűs lesz.
ALI: Tehát kód formájában, azt mondjuk, hogy ha c nagyobb vagy egyenlő, mint egységes
esetben kisbetűs -
wow, hogyan mondod ezt?
Rendben, nagyobb vagy egyenlő, mint a kis 'egy ", és azt, hogy meghaladja
A kisbetűs "z". Így azt, hogy kevesebb, mint vagy egyenlő kisbetűs "z".
Mi meggyőződve arról, hogy ez a kettő között.
Akkor tovább a mi boldog kódot.
Mi az?
ROB: Szóval gondoltam mi lenne, csak folyamatosan azt kérdezi, ha történetesen nincs
kisbetű.
ALI: Ó, nem voltam tudatában.
Bocsánat.
>> Oké, ha fogunk csinálni, mint Rob mondja, és győződjön meg arról, hogy -
tudjuk tartani felkérve őket, akkor mit tegyünk?
SPEAKER 22: [hangtalan]
ROB: Igen.
Ki kell használni valamilyen hurok.
Mivel a felhasználó megadhatja valami érvénytelen a tömérdek mennyiségű szer.
Így használja a while ciklus.
A cél a do-while loop -
szó, az egyetlen alkalommal az egész életében, amit valaha is használni do-
while ciklushoz képest, amikor kér a felhasználótól.
Így az a tény, kérünk felhasználói itt van egy tipp, hogy meg kell
használja a do-while ciklus.
És miért van ez?
Mivel a do-while ciklus mindig történik legalább egyszer.
Tehát, ha kérsz felhasználói adatbevitel, szeretné, hogy ez történjen, legalább egyszer.
És ha a dolgok sikeres volt, akkor folytasd.
Ha nem, menj vissza és kérdezd meg újra.
>> ALI: Más szóval, meg kell tennünk részt.
És ez azt mondja, hogy tegyen valamit.
Szóval printf -
nyomtassa ki a nyilatkozatot, a gyors, és kap a karakter, vagy próbálja
kap egy karaktert.
És akkor mi van, ha szeretné ellenőrizni, hogy valójában tette helyesen.
Akkor adjuk hozzá a feltételeket, akkor azt mondjuk, közben, és akkor van a
feltételes utasítás.
ROB: De most már megfordult a gondolatmenet.
Most eredetileg azt mondták, ha c ebben a tartományban van, akkor érvényes.
Most szeretnénk fordítani, hogy az, és azt mondják, ha c nem ebben a tartományban van, akkor
kell, hogy vissza a dolgokat újra.
ALI: Ó, igen.
ROB: Tehát miközben ez nem igaz, azt akarjuk, hogy menjen vissza, és
kérjen másik karaktert.
Mindenki látja, hogy?
Kérdések ezzel kapcsolatban?
Oké.
>> Tehát most van egy érvényes karakter, hogy tudjuk nagybetűs lesz.
ALI: Akkor mi a következő lépés nagybetűre váltást ez?
SPEAKER 23: Felvétel 32.
ALI: You add -
Sajnáljuk, de mit?
SPEAKER 23: Nem csak hozzá 32?
ROB: Szóval igen, nem pedig a mágikus számok.
Csak akkor használja egyszeres idézőjel cucc.
SPEAKER 23: Oké, nos -
Rob: De lehet kapni 32 -
ALI: Hogyan kerültél a szám 32, azt hiszem, az, amit mondasz.
SPEAKER 23: [hangtalan]
ROB: Tehát jön ki a 32 együtt -
SPEAKER 23: [hangtalan]?
ROB: Igen.
De ha fogjuk csinálni a két lépést tettünk, mielőtt a
a pozíció cucc.
Tehát a helyzet az, hogy az ábécé c történik, hogy a c mínusz kisbetűs
'A'. Tehát ha be egy kisbetűs 'd', helyzete lesz 3.
És most azt szeretné, hogy a dolgokat a nagybetűs köre dolgokat.
Tehát most az új c lesz a főváros "A" plus állásba.
Tehát nem látják, hogy hogyan hoz nekünk -
haladunk a kisbetűs tartományban, a pontos mélysége voltunk ebbe a
tartományban, és megy le a nagybetűs tartományban, és megy, hogy messze
bele újra, ami lesz ugyanazt a karaktert, de most
uppercased.
ALI: És az emberek, hogy összezavarodtak, hogy mennyire mondott 32,
Alapvetően ő együttes mindkét egyetlen nyilatkozatot.
Tehát egyenértékű írásmódja ezt mondta akkor csak egyfajta
helyettesítő helyzetben van, a c mínusz "egy", és tedd itt.
Szóval, mit csinált, azt nem -
char nEwC = nagybetűs "A" plusz mínusz c kisbetűs "a". És mert az algebra,
tudja mozgatni őket körül.
Azt is mondhatjuk, hogy tudja mozgatni, így char nEwC = nagybetűs "A"
mínusz kisbetűs "a" plus c.
És ez, észre fogod venni, ha visszamegyünk a chart.
Van nagybetűs A jelentése 65, a kisbetűs a 97.
Így 65-97 az -32.
>> Szia.
Vegyünk egy helyet.
Oh.
Akkor ülj ide.
Cool, oké, félelmetes.
Üdvözöljük a szakasz.
Észre fogod venni, hogy a különbség 32.
Szóval ott van ez a szám.
De nem úgy, mint Rob azt mondja, a legjobb módja annak, hogy csináld, mert a furcsa
bűvös szám zavart.
ROB: Akkor kell használnod tőke A mínusz kisbetűre a.
Ne használjon csak egyenesen 32.
SPEAKER 24: Miért van az, hogy megint?
Miért nem használja 32?
ALI: Ha megcsináltuk, akkor char nEwC = -32 + c.
És ha nem lát a többi is, ha ez mind elmentek, és
csak lásd ezen egyetlen sorban, akkor honnan tudod, hogy mi a negatív 32 van?
Ez csak a helyén.
ROB: Tehát a program működik teljesen jól.
Ez csak egy stílus dolog.
Valaki megy és az olvasás a kódot, ők, mint amit jelent 32 jelent?
Lehet, hogy nem -
Talán nem azonnal észre, hogy 32 történik, hogy
különbség a kisbetű és nagybetű, bár
fogjuk használni ezt a tényt a következő probléma.
A 32 -
tudna kommentezni felette mondván 32 a különbség
"A" és "." De ezen a ponton, miért nem használja az "A" és "a", és
nem kell a megjegyzést majd.
>> ALI: Ez csak a módját fölötte egy sokkal tisztább, style-bölcs.
És így, mert csak most kezdő programozás -
Azt hiszem, vagy nem, mert te hacker edi - mindegy.
Ez csak egy jó módja annak, hogy -
ez jobb, jobb stílust.
Könnyebb más emberek olvasni.
ROB: Akkor soha nem kell emlékezni az ASCII tábla, soha.
Meg kéne hogy képes legyen használni az aposztróf karakter.
Kérdései vannak?
ALI: Mindenki jó?
ROB: Oké.
Így a következő probléma jelentős.
Így a következő probléma kéri tőlünk -
ALI: A következő probléma kér minket, hogy nem ugyanaz a dolog, de kezelhető
bitenkénti operátorok.
ROB: És persze, nem láttuk bitenkénti operátorok még.
Tehát akkor most megvitatni azokat.
ALI: Légy izgatott.
Ők super fun.
>> ROB: Tehát a rendszeres piaci szereplők, mint x és y, mínusz, idők, megosztottság.
ALI: Írja be azt az e gyors.
Rob: Van még%, ha még nem látta, amelynek segítségével a
százalék szimbólum.
De nem fogja felhasználni ezeket erre a problémára.
Azt szeretnénk használni bitenkénti operátorok.
Most már emlékszem, azt hozta fel előadás 1.
Nem vagyok benne biztos, ha már tárgyalt bináris túl.
De ne feledjük, hogy minden egyes szám képviseli -
Nos, mindent -
képviselteti magát 1 és 0 bináris.
Tehát ez azt jelenti, hogy ha azt mondom, a 8-as számmal, véletlenül tudom, hogy ez
mint, 1000.
Mi bitenkénti operátorok tegyünk a működésre ezeket a biteket -
van működik ezeket a biteket közvetlenül.
Most már nem foglalkozik szempontjából nyolc.
Én foglalkozik szempontjából 1000, és azt akarom csinálni a dolgokat azokkal
egyes bitek.
Szóval Ali írt a bitenkénti operátorok itt, de ez -
A 8-as számú fogjuk használni, mint az egyik példa számok.
És a bináris 1000.
Majd egy másik számot, 5 -
ténylegesen vegyünk 9 és 5.
És az 5-ös bináris a 00 -
0101.
ALI: Mindenki jól áll ez?
A bináris cucc?
Ez volt az első előadás?
>> ROB: Tehát akkor is, ha nem teljesen a tetején, hogyan kell átalakítani a dolgokat
bináris, ez nem teljesen fontos erre a problémára.
Fogjuk használni, de akkor már sokkal több esélye, hogy kitaláljuk, hogyan lehet
Gyorsan kör dolgokat bináris.
Tehát a 9 és 5, most már a bitenkénti operátorok.
Ó, és szintén, 9 és 5, ha ez egy egész szám, akkor valóban ez a 32 bit,
ami azt jelenti, hogy, mint a 0, 0, 0, 0 sokszor, akkor
101 a legvégén.
Ez csak azért, mert nem számít, mit teszel, az egész számok, 32 bit.
Csak azért, mert csak be kell négy bit, hogy képviselje 9 nem jelenti azt, hogy nem vagyunk
használja fel a másik 27 bit mindössze 0s.
ALI: Csak, hogy tisztázza, az egyik ezek a számok, hogy ez a 0 vagy 1 egy kicsit.
Ez egy 4 bit.
Mint oly Rob azt mondta, hogy a gépek tárolja őket 32.
Így akkor akkor azokat 32 vagy egy 0 vagy a 1.
Cool?
ROB: A bitenkénti operátorok.
Az első, hogy mi foglalkozunk, csináljuk &.
Szóval, ha mi 9 & 5.
Szóval mit csinál, és, apránként, összehasonlítja a bitek a két szám
és ha mind a számok az 1, akkor vissza fog térni a 1.
Ha valaki egy 0 és a másik jelentése egy 1, vagy mindkettő 0s, akkor ad vissza 0.
Szóval lehet gondolni rá, mint a logikai ands.
Ahogy kell, igaz, és igaz, hogy vissza igaz, de igaz és hamis hamis.
Szóval ez ugyanaz a dolog, de most dolgunk vele mindössze bit.
>> ALI: Tehát, ha megnézi ezt, akkor is 1 -
akkor sorban őket, így lesz 1 és 0-ra.
Srácok, úgy gondolja, hogy lenne - mi lenne az értékeli a?
SPEAKER 25: 1.
ALI: Cool.
Vagy nem.
Bocsánat.
Tehát nem, hogy van értelme?
Tehát mi a kollektív válasz megint?
Bocsánat.
Tehát, ha van 1 és 0, akkor mit kapsz?
ROB: Tehát úgy gondolja, hogy hogyan mondod, és hangosan.
Ha két bit, x és y, szükség van az x és y értéke 1 legyen, hogy ez
értékelésére true - vagy annak érdekében,, hogy értékelje 1-re.
Ha az x vagy y értéke 0, akkor az eredménye hamis vagy 0-ra.
LUCAS: Jó megjegyezni azt is, hogy az 1 és 0 true hamis.
Tehát, ha igaz és hamis, ez hamis.
De aztán, a valódi és igaz, igaz.
Hamis és hamis, hamis.
ALI: Van true és false.
Így 1 és 0.
Így aztán megint, sajnálom, még egyszer?
SPEAKER 25: lenne 0.
Ja, király.
És akkor már 0 & 1 -
SPEAKER 25: [hangtalan]
ALI: Igen.
Így mindig cserélni őket -
Aztán ha 0 és 0?
SPEAKER 4: 1?
0?
ROB: Tehát ez 0.
Ez nem, hogy mindkét számban meg kell egyeznie.
Ez az, hogy a két számot kell 1.
ALI: Tehát mindketten, hogy igaz az, hogy igaz legyen.
Szóval ez 0.
És akkor már 1% 1, ami van?
ROB: Ezek nagyon jó számok.
Ők minden lehetséges -
ALI: Szép munka, wow.
Oké, király.
Tehát nincs értelme, hogy mindenki számára?
>> ROB: Tehát most megteszem |.
És ez lesz nagyon hasonló, de most ahelyett, hogy x és y szoruló
1-annak érdekében, hogy értékelje az egyik, most ez csak x vagy
y kell 1.
ALI: Tehát 1 | 0 eredménye -
OSZTÁLY: 1.
ALI: Cool.
0 | 1 eredménye -
OSZTÁLY: 1.
ALI: Cool, majd 0 | 0 -
OSZTÁLY: 0.
ALI: Igen, és majd 1 | 1 -
OSZTÁLY: 1.
ALI: Cool.
Szóval ez olyan, mint két bitenkénti operátorok.
Félelmetes.
ROB: Tehát most megteszem ^.
ALI: Ha mi mindannyian?
ROB: Igen, mert úgy gondolom, fogjuk használni -
használja őket.
ALI: Oké.
So -
ROB: Azt hiszem, nem kell.
ALI: Tehát ^ működik, hogy van, hogy pontosan egy igaz és egy hamis.
^ Jelent kizáró VAGY.
Szóval most már nem -
ha x és y mindegyike 1, ez most hamis.
Ez a különbség a ^ és |, hogy OR, akkor van, ha x
igaz, vagy y igaz, akkor jók vagyunk.
Nem, azt mondja, ha x ^ igaz, y hamisnak kell lennie, vagy pedig ez nem igaz.
Van kérdése?
>> SPEAKER 26: [hangtalan]
ALI: Igen.
Elég hasonló.
ROB: Igen, így amikor kapsz, hogy az alacsony szintű hardver-cucc, ezek
A típusú műveletek te dolgod.
A hardver szintű, akkor csak azokkal a biteket.
Nem foglalkozik számokat.
ALI: Oké, a ^, vagy ha 1 ^ 0, mit kell, hogy értékelje, hogy?
OSZTÁLY: 1.
ALI: Cool.
Ha
0 ^ 1? OSZTÁLY: 1.
ALI: Cool.
0 ^ 0?
Cool.
És akkor 1 ^ 1?
OSZTÁLY: 0.
ALI: Cool, awesome.
A következő egy -
ROB: Azt gondolom, ezek mind nekünk kell foglalkozni.
Majd csak ezek.
ALI: Az egyetlen alkalom, akkor meg kell tennie -
ROB: Oh, ez lesz az utolsó problémát.
SPEAKER 27: Várj, még egyszer?
ALI: Sajnáljuk, de mi volt a kérdés?
>> SPEAKER 27: Meg tudod magyarázni, hogy ismét?
A ^?
SPEAKER 27: Exclus - igen.
ALI: Tehát mi a kizáró VAGY azt jelenti, hogy ott kell lennie kizárólag
egy igaz és egy hamis, így egy 1 és egy 0, versus OR, akkor van -
egyikük kell lennie igaz, vagy mindkettő lehet igaz, mert
értékelni igaz.
SPEAKER 27: Tehát 0 és 0 lenne hamis.
ALI: Igen.
De ha van 1 |
1, amely értékeli, hogy igaz.
De ha van 1 ^ 1, mint mi, hogy eredménye hamis.
Mert ez nem kizárólag egy igaz.
ROB: És ez lehet, hogy nem lehet, de vegyük észre, hogy a ^ a
megegyezik, csak figyelembe a |
mínusz a &.
És akkor valóban gondolkodnak róla így.
^ Éppen fejekhez mindent együtt, de vesz ki bármelyik bit, ahol
mindkettő igaz.
Szóval és visszaadja minden hol mindkettő igaz.
| Visszatér mindent, ha az egyik vagy mindkettő igaz.
Tehát levonva, hogy ki a | megadja neked a ^.
ALI: Van még kérdése?
Ez rengeteg információ.
Mindenkinek jó?
>> ROB: Mi lehet menni a következő is a következő probléma, perjel
mi az idő?
Nem kell ezt, amíg a következő probléma.
ALI: Azt hittem, ez egy.
ROB: Ez nem az.
ALI: Biztos vagy benne?
ROB: Igen, én vagyok pozitív.
ALI: Miért nem kezdjük csinál a következő probléma?
A probléma az, ismét megváltoztatni azt kisbetű a nagybetűs, és ez
alkalommal használja bitenkénti operátorok.
ROB: Akkor mi lesz -
kezdjük a bináris "A", a tőke "A",
ami 65.
Tehát bináris -
így az "A" = 65, ami =, bináris -
Fogom elrontani számát 0s -, hogy.
ALI: Tehát ez azt értelme mindenkinek?
Szóval, 1, nem 2s, nem 4s, nincs 8s, no -
nincs 16S, nincs 32s, és aztán egy 64.
ROB: Igen, úgy gondolom, hogy az egyik túl sok 0s.
ALI: Elnézést.
>> ROB: Oké, így már a 64 meg, és mi van az 1 set, és összekapcsolja az
együtt kapunk 65.
ALI: Cool bab?
ROB: Tehát most, kisbetűs 'a'-
észre 97 -
mi a különbség a 97 és 65?
SPEAKER 28: 32.
ROB: Igen.
Szóval ez 32, amely a saját bit, így lesz 110.001.
És ez lesz igaz az összes lehetséges karakter.
Tehát, ha úgy gondolja, a "D", ami lesz 68, ez lesz 1000011.
És akkor kis 'd' lesz a 68 plusz 32, ami 100, ami
lesz ugyanaz a dolog, hogy ez volt, csak essek a
32 újra, így 1.100.011.
Így a különbség a nagybetűs és kisbetűs éppen essek
, hogy a 32-bites pozíció.
SPEAKER 29: Hát nem 1000100?
ROB: Várj, ez 100 -
amit én csináltam rosszul.
Ez nem volt igaz.
Arra gondoltam, hogy ez a különbség 3, így aztán csak megragadt
A bináris 3 a végén.
Ez helyes.
ALI: Köszönöm.
Jó rámutatva, hogy ki.
Ez volt éles.
Rendben, hogy egyértelmű, hogy az emberek?
>> ROB: A különbség a nagy-és kisbetűk változat
mindig csak lesz 32, és így mindig lesz egy kicsit
hogy meg kell változtatni tükrözött a kettő között.
ALI: Tehát ebben az esetben, ismerve a különbség a főváros A és
A kisbetűs egy jó dolog.
Nem a kódot, de fogalmilag legalábbis, ez jó.
Szóval srácok, lehet menni előre, és a kód, hogy a Spaces most.
Vagy mi csak megbeszéljük?
ROB: Mi is csak megbeszélni.
Nem tudom.
Srácok lehet próbálni.
Beszélj között magad egy kicsit.
Adunk egy esélyt, hogy Kódex.
[Közbeiktatásával VOICES]
ALI: - hűvös
SPEAKER 30: Ez olyan, mint hacker komédia.
ALI: Igen, mi csak mondja a híreket, megy keresztül.
>> Rob: És újra itt vagyunk.
ALI: Ez furcsa.
Úgy érzem, meg kell egy CS50 hír állomás és tudtuk
ténylegesen ülni, mint ez.
ROB: Hacker News.
ALI: Hacker News 50.
ALI: Nyugodtan kérdezz bármilyen kérdése ha zavarodva.
ROB: Van valaki beragadt?
ALI: Igen, ez egy jó dolog.
ALI: Várj, Ön megragadt a székben?
Oh.
Én egy kicsit érintett.
ROB: Mert én csak rájöttem, hogy fogunk akar
másik bitenkénti operátor.
Most, nézzük csak átalakítani nagybetű kisbetűre.
ALI: Sajnálom, nem mindenki kap, hogy a hirdetést?
Fogunk menni nagybetű kisbetűre.
ROB: Akkor megbeszéljük kisbetűvel nagybetűs lesz jobb után.
Ó, nem.
Van egy bug e, amit, azt hiszem, soha nem próbált futni.
Ami csak az, hogy char c kell nyilvánítani kívül a hurok, mert a
hatálya korlátozott a hurok.
SPEAKER 32: Ebben az esetben, ez helytelen, hogy egy szám?
ROB: Eh, nem kell.
Ha azt garantálni, hogy a tőke 'A'- vagy kisbetűs "a" mínusz tőke "A"
éppen egy kicsit, de nem tudod, hogy a 32 -
dolgok működnek ugyanúgy, mintha a 16 bit, amit tükrözött - vagy
Nem, azt hiszem, wouldn't -
vagy a 64 bites is tükrözött, esetleg.
De nem kell használni 32.
Lehet helyette használni kisbetűs "a" mínusz tőke "A".
>> SPEAKER 32: Rendben.
Mit lehet tenni, ha úgy érzed, hogy írsz túl sok megadhatjuk, hogy
a tetején.
Szóval lehet, mint, int különbség = kisbetűs 'a' mínusz tőke "A". És
akkor írja különbség helyett.
Ez érvényes.
De csak a 32-es a fajta -
SPEAKER 33: Annak ellenére, hogy azért, mert az a tény, hogy ez a 32 bit?
ALI: Igen.
ROB: Lehetne -
az egyetlen garanciát kell, hogy Ön, hogy a különbség az
kisbetűs és nagybetűs egy bit.
Az nem számít, hogy ez történik, hogy a 32 bites, ami tükrözött.
Az idő megfontolások kezdünk megy át ezt.
Nem baj, ha még nem fejezte be.
Ne aggódj miatta.
ROB: Feltételezve c nagybetűvel -
nem kell feltételezni, c nagybetűvel.
Tudjuk, hogy c egy nagybetű, ezt követően pedig loop -
do-while hurok.
Tehát ez azt jelenti, hogy valahogy így néz ki az "A". Tehát, ha azt akarjuk, hogy ezt
'A' e 'a', mit kell tennünk?
Szóval hogyan lehet átalakítani, és fordítsa meg a kicsit?
ALI: Hogyan flip azt?
>> ROB: Tehát tudjuk, hogy azt akarjuk, hogy fordítsa meg a 32 bit.
Annak érdekében, hogy meg fog tenni "a" mínusz "A", vagy mi lehetett írni 32, de -
rohadt, ez a másik fordítva.
ALI: Oké, így Rob itt van számának kiszámításához, bűvös szám 32.
Szóval ő kideríteni ha ez bit flip-terület lenne.
És akkor mit tesz, ha a szóban forgó védjegyek?
ROB: Hogyan flip, hogy a kicsit?
Ami a nagybetűs, ez egy 0 és szeretnénk válni a 1.
SPEAKER 34: |.
ROB: Igen.
Szóval ez nekünk mondja veszünk 'A'. Mi fejekhez azt 0 -
1000 -
és ez = ezt.
ALI: Van ennek értelme mindenkinek?
Mi megy át rajta apránként, ha akarod.
SPEAKER 35: Te [hallható]?
ALI: Hol van a mínusz jel?
ROB: Oh, érted itt?
ALI: Ó, igen.
ROB: Szóval azt hiszem, ez nekünk.
Mondhatnánk, 32, és most mi csak a bitenkénti operátorok.
ALI: Mi nem tetszik mágikus számok.
Nem fogunk csinálni.
Is kéne csak használni bitenkénti operátor -
SPEAKER 36: Ha a ^ A, kapsz 32?
SPEAKER 37: Igen, azt hiszem -
ROB: Igen, így lesz.
ALI: Ez hogyan megtette volna alkalmas arra, hogy
tőkéből kisbetűssé.
>> Most már tud valaki mondja meg, miért Rob és én megváltoztatta a prompt és hogyan ment
származó nagybetűs kisbetűs, ahelyett, hogy kisbetűs
nagybetűs mint mi korábban?
Van valakinek bármilyen ötlete, hogy miért lehet nehezebb?
ROB: Szóval megtenném -
ALI: Igen, folytasd.
SPEAKER 38: A | operátor csak igazán jó hozzá.
ALI: Igen, pontosan.
ROB: Tehát mit akarunk csinálni a kisbetűs a nagybetűs ügyben,
alakítják át ezt az 'a'-
így szeretnénk tenni néhány számot itt és használni néhány üzemben, így jön
ki, hogy a tőke A. Mi még talán a 32 valahogy, de most hogyan
kap ez, hogy jöjjön ki ez?
Tehát c -
oh, én még mindig szeretné, hogy túl -
ALI: Tehát most, ha mi konvertálás kisbetűvel nagybetűs lesz újra, akkor
nem a ^ művelet, mint ti mondta.
ROB: Vannak más módok is meg tudod csinálni a dolgokat.
Sok a bitenkénti operátorok a végén, hogy nagyon könnyen definiálható szempontjából
más bitenkénti operátorok.
Így akartam, hogy nem használja ^ vagy egyáltalán, de a ^ működött tökéletesen.
>> ALI: Oké, akkor megyünk tovább az utolsó probléma, amely az alap -
Az utolsó probléma átalakítani valamit bináris.
Így például, van 50, és aztán átalakítani, hogy
bináris, ami a 110.010.
És azt hiszem, ti mind tudni bináris előadás.
És azt is, hogy nem kellene tegyen vezető 0s bele.
ROB: lehet figyelmen kívül hagyni azt a részét most.
Az első lépés, meg tudod csinálni úgy, hogy vannak olyan vezető 0s.
És akkor lehet módosítani, hogy az, hogy nincs vezető 0s, ha van ideje.
ALI: Ne aggódj.
Csak próbálj bináris.
Egy jó kiindulópont lenne -
ROB: Meg kell kérni az egész.
ALI: Ó, igen, ez egy jó.
Mi lehet kezdeni vele.
Így meg lehet változtatni a prompt.
Tehát ahelyett, hogy egy karakter, most van dolgunk egészek.
Cool?
>> ROB: És most mi a do-while feltétel lesz?
Ez kér egy nem-negatív egész szám.
ALI: Ha nem akarjuk megtartani a felhasználó megkérdezése valami mást?
Ha ez kisebb, mint 0-ra.
ALI: Így van.
ROB: Bár i kevesebb, mint 0-ra.
ALI: Most szeretnénk átalakítani.
Srácok van valami ötleted, hogy mit kell csinálni?
Bármely inklings?
Igen.
SPEAKER 39: Muszáj konvertálni, vagy mi csak nyomtatni néhány 0s és 1s
ez lenne a helyes számot?
Tudnál csinálni egy for ciklus és számolj ki hatásköre 2?
ROB: Igen.
Önnek nem kell konvertálni i annak bináris -
A bináris i nem fog elférjen i.
Csak azt kell kinyomtatni a bináris i.
ALI: Más szóval, akkor nem kell menni hatásköre kettő.
ROB: Mivel én már most is tárolni bináris, így nem kell
átalakítani, hogy bináris.
Menj át a bináris, és nyomtassa ki.
És fogsz kell használni bitenkénti, mert szeretné, hogy nézd meg
a tényleges biteket.
Önnek nem kell használni bitenkénti, hanem tegye.
És ez valóban -
tudod csak csinálni hatáskörét két megszorozzuk 2-vel.
Elmegyünk több mint az elmúlt két bináris bitenkénti operátorok,
ami ezt.
Tehát, ha veszel -
>> ALI: Lehet, hogy menjen végig mind a ketten?
ROB: Igen.
Akkor menjünk, 9.
Tehát 9 BAL SHIFT 1 -
mi maradt eltolás révén éppen mozog a bitek balra és helyezzen be egy 0.
Szóval haladunk minden bit 9 és a bal
álláspontot, amely számunkra -
Így észre, mi mindent eltolódott balra egy, és ki a 0 a
jobb oldalon.
Ha volna tolódott maradt kettő, mi lenne váltani mindent hagyott két,
és helyezzen be két 0-ák, hogy töltse ki a hézagokat.
Kérdés?
ALI: Tehát jobbra léptetés nem egy hasonló dolog.
Ha 9 jobbra léptetés 1, akkor te csak mozog mindent át
a jobb, akkor veszít egy számjegyet, így 100 helyett.
ROB: Szóval ez rendben van, hogy veszít a bit, ami történt, hogy az összes
az utat a jobb oldalon.
Vannak különböző típusú jog műszakok, de alapvetően lehet gondolni
JOBB SHIFT mint csak elosztjuk 2-vel.
És akkor úgy gondolja, hogy a bal Shift mint megszorozzuk 2-vel.
Tehát, ha át ezt -
ha a konvertált 9 műszakban 1, ami egyenlő 10010, ha tényleg elment
a bináris és rájött, hogy mi volt, ez csak 18.
Most szorozzuk 2-vel.
1001 bal Shift 2 lesz 36.
Mi szorozni 4-gyel.
Oké, hűvös, tehát ez egy praktikus bitenkénti üzemeltető ezt.
További zavart?
Akartok, hogy próbálja ki!
Vagy egyszerűen csak ugrani, és indítsa el?
ROB: Mi kéne ugrani be
ALI: Igen, Oké.
Rob: És séta együtt.
>> ALI: Hát akkor csak menj bele.
Szóval, azt mondta az elején, megyünk, hogy csak menjen át apránként.
Szóval szükségünk lesz egy hurok.
Van valakinek egy ötlet a legjobb fajta hurok, hogy menjen át ezt?
Van while ciklusok, do-while ciklusok, a hurkok.
SPEAKER 40: Do-while ciklus?
ROB: Úgy emlékszem, mit mondtam, mielőtt beszélsz, mi csak a do-while
hurkok kap felhasználói bevitel.
Te soha nem elég sok valaha is használni őket bármi másra.
ALI: Az a baj a do-while ciklushoz képest, hogy csinál valamit, mielőtt ellenőrzi a
a feltétel.
Szóval, lehet, hogy valami rosszat -
tetszik, fáj -
tenni valamit, hogy ez nem lehetséges.
Szóval azt akarod, hogy ellenőrizze először.
ROB: Van egy csomó esetben, ahol használhatja do-while ciklusok, de az emberek
Nem várom el, hogy használja őket, ha ez a felhasználói bevitelt.
Tehát már használta a do-while ciklus, hogy i.
Hányszor van a hurkot akarnak majd hurok?
Azt akarjuk, hogy az egyes hurok a bitek i.
Hány bit az i?
SPEAKER 41: 32.
ALI: Igen.
ROB: Szóval van 32 bit.
Nem azt akarom mondani 32.
Mi inkább azt akarom mondani sizeof -
amelyek, láttad, hogy az osztályban már?
ALI: Nem.
ROB: Miért mondják használni, hogy -
sizeof (int) alkalommal 8 -
ALI: Tehát, sizeof jelentése -
>> SPEAKER 42: [hangtalan]
ALI: Érdekes.
Szóval, sizeof egy beépített C függvény, ahol csak mondja a
bitek száma -
ROB: Bytes.
ALI: Bytes, sajnálom -
bájtok számát, hogy egy változó tárolja egy értéket.
Tehát úgy gondolom, hogy átmentem az osztályban, akkor egy int 4 bájt lehet.
Cool?
ROB: De nem kell tudni, hogy egy int 4 bájt.
Meg kell tudnia mondani -
akkor használja a sizeof (int), hogy 4 bájt.
És ez valóban fontos dolgokat.
Egy int lehet, hogy nem 4 byte.
Egy másik számítógépre, int lehet 8 bájt.
Tehát a program nem fog működni, hogy a számítógép, mert beégetett 32
bitek, amikor az adott számítógépen történetesen 64 bit.
ALI: Szóval az összes bitek akarod megfordítani.
Rob: És a különbség egy byte, és egy kicsit, hogy van
Jelenleg 8 bit egy byte.
Szóval sizeof (int) eredménye 4 byte, akkor meg kell szorozni, hogy az
8-hoz kap 32 bit.
>> ALI: Oké, tehát tudjuk, hogy a legnagyobb és tudjuk, hogy akarunk menni -
azt akarjuk, hogy menjen át mindet.
Így akarunk menni 0-tól numBits.
Szóval Tudja valaki, hogyan kell írni a hurok, hogy?
Valaki?
SPEAKER 43: [hangtalan]
ALI: Szóval azt akarod, hogy keresztezik a számot én a 0. bit a
első bitjét, a második bit, a harmadik bit, egészen numBits.
A maximális bitek száma, hogy lehet eljutni.
ROB: Mi a közös hurkot használunk, mit akarunk tenni valamit x alkalommal?
ALI: For.
Tökéletes.
Tehát a.
És aztán készítsen egy iterator, ami nem lesz i.
ROB: j.
Ali: J = 0.
Szóval akkor 0-val kezdődnek.
És akkor megyünk, hogy a feltétel, hogy megbizonyosodjon arról, miközben te
megy keresztül, hogy minden egyes alkalommal -
[Közbeiktatásával VOICES]
ROB: j.
Ali: j kevesebb, mint numBits.
Tehát nem akarok a tényleges értéke 1, mert ők numBits
teljes, és 0-val kezdődnek.
Szóval tényleg megy, hogy -
SPEAKER 44: Oh.
ALI: Az indexek nem ér véget numBits mínusz 1.
ROB: Mi címkézni a biteket 0-31, nem címkézik őket 1-32.
ALI: És akkor fogunk növekmény minden alkalommal egy, mert azt akarjuk, hogy
ellenőrizze, minden egyes ember.
Akkor megyünk j + +.
>> SPEAKER 45: Miért csinálod ezt?
SPEAKER 46: Miért megy keresztül minden egyes bit?
ROB: Tehát azt akarjuk, hogy menjen át minden kis és -
Tehát mondjuk van néhány szám.
ALI: 68.
ROB: Tudjuk használni 68.
Így a bináris lesz 100.100.
Szóval ez a belső én, és azt szeretnénk, hogy menjen át minden ezeket a biteket.
Ez egy 1?
Nyomtatás 1.
Ez egy 0?
Nyomtatás 0.
Aztán megyünk tovább a következő bit.
Ez egy 1?
Nyomtatás 1.
Van egy 0?
Nyomtatás 0.
ALI: Cool, oké.
Most mi vagyunk a megfelelő indexet, ahol ez bit.
Hogyan lehet ellenőrizni, hogy különös egy?
Tegyük fel, hogy itt vagyunk j = 0, ezért szeretné, hogy ellenőrizze a 0 index a bit.
Tehát ebben az esetben, ez.
>> Tehát most hogyan megy a check - oh, nem lenne ez.
ROB: Igen.
ALI: Elnézést.
Hogyan álljunk neki ellenőrzésére, hogy egy, bizonyos értelemben?
Hogyan tudjuk ellenőrizni, ha ez a 0 vagy a 1?
Well let's -
OSZTÁLY: És 1?
ALI: És?
Igen.
ROB: Tehát mondjuk már van 1.
Akkor ezt és ezzel a művelettel vajon ez egy 1 vagy egy 0-ra.
ALI: Akkor mehetünk le.
És meg tudjuk csinálni, mint ti mondta, csinál a & funkciót.
ROB: int -
hogyan akarom ezt mondani -
Isone = i.
És az első bit mi történik, hogy nézi, csinálunk i & 1.
Most mit fogunk szeretnénk & által a második kicsit?
SPEAKER 47: 2.
ROB: Igen, a második, hogy mi vagyunk a 2.
ALI: Észre fogod venni, hogy az 1 költözött át a bal.
Így tudtunk minden bitenkénti operátorok tenni ezt a funkciót?
ROB: A következő egy -
ALI: Igen, így van, pontosan.
Szóval ez a bal shift.
Ahelyett, hogy mindig ellenőrzése 1, fogjuk váltani azt.
És hányszor fogjuk váltani ez?
Ha most ellenőrzi a 0. 1, akkor fogjuk mozgatni rajta nulla.
Igen, pontosan.
Szóval BAL SHIFT azt j.
Tökéletes.
Tehát most már tudjuk -
itt van ez int az, ha ez 1, akkor -
így Rob fajta csalás itt -
és így most megy előre, és ő csak azt mondom, hogy ha ez valóban 1,
mert 1 kiértékelése igaz, így nem kell, hogy mondjam ISF Isone értéke 1 -
így ha Isone, akkor nyomtassa ki 1, és különben nyomtatása 0.
>> ROB: Így a program egy átfogó bug.
Nos, az első kérdésre.
SPEAKER 48: Tud már fel a Isone belül a négy művelet része és
akkor már azt váltani magát az utolsó részt?
Szóval Isone értéke 1, majd -
ROB: Igen, lehet.
Mi valóban azt mutatják, hogy ha egyszer rögzíti a hibát, hogy én vagyok arról, hogy
megbeszéli Önnel minden.
Figyeljük meg a megrendeléshez megyünk át a dolgokat.
Tekintettel erre a bináris, kezdjük a 0. bit.
Ha ez 0, akkor nyomtat -
Nos, ez egy 0, így nyomtat 0.
Aztán megyünk a második kicsit.
Ez egy 0, így nyomtatni 0.
Aztán megy a harmadik kicsit.
Ez egy 1, így nyomtatása 1.
ALI: Tehát ez lesz visszafelé.
Szóval hogyan srácok javaslom, hogy fix, hogy, és menj a másik irányba?
SPEAKER 49: [hangtalan]
ROB: Igen.
Tehát ahelyett, hogy 0-tól numBits, akkor megy numBits bitet 0-ra.
ALI: Szóval [hangtalan]
mindig megy a másik irányba.
ROB: NumBits mínusz 1, mert ez az utolsó nubmer -
ALI: Mert megy 0-31.
És aztán mindig győződjön meg arról, hogy ez nagyobb, mint 0, így nem megy
túlságosan jobbra.
És akkor majd mindig kivonni 1-menni jobbra.
>> ROB: Tehát most van egy fordított hurok, és ez a szám vissza nyomtatás
a helyes utat.
SPEAKER 50: Nem meg kell változtatni a sebességváltó dolog is?
ALI: Tehát nem.
ROB: Csinálunk pontosan ugyanolyan műveletek, kivéve most
fordított sorrendben.
Tehát ahelyett, hogy a változó által numBits mínusz 1, hogy akármi is ez
bit van, ahelyett, hogy az utolsó, akkor tedd meg először.
Azáltal, hátrameneti ez ide, mi fordított sorrendben minden
ez történik benne.
De nem akar változtatni, hogy mi történik benne egyáltalán.
ALI: Van ennek értelme?
Feldolgozása?
Oké, nem másnak bármilyen más koncepcionális kérdés?
ALI: Mielőtt bemegyünk a pont, amely -
ALI: Rendben, menj.
Rob: Ahelyett, j, hogy a mi -
ahelyett, hogy a j mindig elmozdulás által, mint egy balra léptetés j, azt hiszem, mi
azt mondod nem tetszik, hogy j használja magát.
Tehát j -
Azt hiszem, ez a kemény - j = 1 << 31.
Ez az, amit akarok?
Azt hiszem << 31.
j> = 1.
j >>, >> Isone, i és j -
így most ahelyett, hogy a -
ALI: Te folyamatosan mozog j helyett, amelyek
index, hogy ellenőrizze azt.
Ez nem olyan rossz.
Mi egy hasonló jellegű logika.
Tehát, ha visszamegy -
oh, de ez fog elveszíteni.
Oké, te csak megy, hogy írja újra.
Ha azt veszi észre, hogy van 1 << j mennyiségű idő, és mi volt
növelésének j minden egyes alkalommal egy növedék, de ezúttal inkább
csinálnak a növekmény j a csúcson belül a hurok.
Tehát ahelyett, hogy állandóan mozgásban le -
ROB: Az első iteráció a for ciklus, már j 10000.
A következő iteráció a for ciklus 01000.
A következő iteráció hogy.
És az 1 csak megy, hogy szaporító, amíg elérjük a nagyon
end, ahol most ez.
A következő egy, az 1 fog tolni le, és j már nem nagyobb,
kisebb vagy egyenlő 1-re.
Azt is fel 0-nál nagyobb, ugyanaz a különbség.
És akkor ez az.
Kérdései vannak?
Igen.
>> SPEAKER 51: [hangtalan]
ROB: Szóval ez ugyanaz, mint a -
láttad j + = 3?
Tehát ez ugyanaz, mint a J = j + 3?
Meg tudod csinálni, hogy gyakorlatilag bármilyen üzemeltető C. Szóval j >> = 3
egyenlő j = j >> 3.
Szóval, hogy működik is bitenkénti operátorok.
És nem kellett volna tenni 31 itt.
Meg kellett volna tenni numBits - 1.
ALI: Yay, nincs mágikus számok.
Oké, ez 4:00 bár, így ha a srácok menni - de ez van értelme?
Srácok bármilyen egyéb kérdése?
ROB: Én is fogja dobni, hogy ha akarnánk -
már kifejtette háromkomponensű üzemeltető egyáltalán?
ALI: Nem
Semmi baj.
ROB: Szóval meg tudná nézni, hogy a következő alkalommal.
ALI: Oké, tényleg?
Most csak mutatja ki.
ROB: No, most ez -
ez az, amit kap az emberek érdeklődését, és most megyek nézzen rá.
Tehát most, hogy nem ugyanaz a dolog, egy lépésben.
Szóval először ellenőrzi, az i és j 1?
Igaz ez?
Ha igen, nyomtat 1, más, nyomtassa ki a 0-ra.
ALI: De csinálja a másik út tökéletesen is.
Ez ugyanaz a logika.
Szóval ez nem olyan, mint az egyik -
ROB: Ezen a ponton tudunk megszabadulni a kapcsos zárójelek, mert ez csak
egy sor hurok.
ALI: Oké, szóval nincs ennek értelme?
Ez a fajta a folytatásban.
De ez csak a szintaxist, még inkább.
>> Cool?
Egyéb kérdés?
ROB: Rendben.
ALI: Rendben, király.
Kösz, hogy eljöttél szakasz.