[Powered by Google Translate] [ELECTRONIC STATIC SOUNDS]
ROB: Okay, so, was wir gerade brachte Sie ist CS50 Spaces.
ALI: Warten, warten wieder auf.
Willkommen in Abschnitt!
ROB: Willkommen in Abschnitt!
ALI: Yay!
ROB: Oberabschnitt!
ALI: Ich bin Ali, und das ist Rob.
Okay, jetzt werden wir erklären, Spaces.
ROB: Also, was wir nur brachte Sie ist CS50 Spaces.
Sie werden mit dieser eine Menge in Ihrem Abschnitten in diesem Semester.
Grundsätzlich haben wir schon laden Sie das Gerät aus.
Und Sie können von CS50 Räume als ein Web-Interface im Gespräch mit einem Gerät, dass
dass wir auf einem Server irgendwo.
So können Sie Ihren Code in diese Schnittstelle laufen, und wir werden
sehen, wie Dinge zu tun.
Sie können auch auf den Code von anderen Leuten im Abschnitt sehen, und -
ALI: Und wie manche Leute herausgefunden haben, können Sie die Menschen auf der Seite unterhalten.
Und wir alle sehen es auch so, das ist spannend.
Komm rein, komm und setz.
Nehmen Sie Platz.
>> ROB: So, sind Abschnitte -
ALI: Nein, nein, ihr Jungs kommen kann.
ROB: Abschnitte sein werden viel interaktiver diesem Semester.
ALI: Oh, er ist wie -
Oh.
Okay, cool.
Also, wenn euch nur kommen in, können Sie auf diesen Link gehen, wenn ich bekommen kann
dort, genau dort.
Wir können nicht wirklich schreiben, weil es nicht Platz auf der Leiterplatte, aber dieser Link
hier, um die auf Ihrem Computer gehen, und du wirst CS50 geben
Räume, die eine ziemlich coole Sache ist.
Okay.
Haben Sie ein Problem?
ROB: So können Sie die Probleme zu finden -
Wir müssen in der Lage sein, diese irgendwo zu schreiben.
Also, wenn Sie cs50.net/psets gehen und dies ist der Hacker Oberabschnitt -
und Sie in die Hacker Edition von pset ein zu gehen, bei der Spezifikation aussehen
irgendwo unten auf Seite -
>> ALI: Also im Grunde, während Rob suchen, was wir in zu tun
Abschnitt heute gibt es einen Abschnitt von Problemen -
ROB: - auf Seite acht.
ALI: - genannt ein Abschnitt von Problemen -
ROB: Section Fragen.
ALI: Sorry, ein Teil der Fragen.
Und das sind, was wir gehen über -
das sind, was wir gehen über heute im Schnitt.
Und wir werden es auf CS50 Spaces codieren, und hoffentlich das funktionieren wird.
Und wir können nur durch sie zu sprechen.
Und euch kann Fragen stellen, wenn Sie das Gefühl -
>> ROB: Also das ist immer eine gemeinsame Sache mit den meisten pset sein.
Ich denke, mit diesem ein, so dass Sie nicht haben, um diese Fragen zu übergeben in.
Aber die Idee ist, dass diese Fragen auf der pset gestellt werden, und Sie können kommen
§ diese Fragen beantwortet haben.
Oder wenn Sie nicht im Abschnitt nicht kommen, können Sie sie auf Ihrem eigenen zu beantworten oder zu erhalten
Hilfe bei der Bürozeiten oder so etwas.
Aber das sind Fragen, die angeblich prep Sie für das Problem gesetzt sind.
Und auf der Hacker-Ausgabe, könnte eine Menge der Fragen nur sein, zu
Erweiterung Ihrer aktuellen CS Wissen.
ALI: Yep, ziemlich viel.
>> Okay, ja, jeder ist auf CS50 Spaces?
Hallo, kommen Sie herein
Sprecher 1: Können wir die URL ein weiteres Mal?
Rob: Ja, das wird einfacher sein, wenn Sie tatsächlich in Ihrem Abschnitte sind, und
Ihre TF kann nur senden Ihnen die URL vorher.
ALI: Yay, nehmen Sie Platz.
Es gibt Sitze hier.
Die Front ist nicht so schlimm.
Was?
Also, CS50 Spaces, wir bekommen es.
Hat jemand irgendwelche Fragen, bevor wir in zu bekommen - was?
ROB: Es gibt nicht einmal Kreide.
[Unverständlich]
ALI: Sorry.
Sie könnten Ihre Fingernägel?
Wir sind in einer sehr low-tech Raum für eine sehr High-Tech-Klasse.
Okay, ist jeder Art von gut?
Hat jemand noch Fragen zu diesem Thema?
Wie ich schon sagte, werden wir durch den Abschnitt von Fragen gehen
die pset Spezifikationen.
So gibt es nur ein paar Probleme, die wir zu gehen
Code bis in CS50 Spaces.
Ist jeder gut?
Okay.
Good?
ROB: Haben Sie einen Laptop?
ALI: Sie können hängen mit Lucas.
Er hat recht neben Ihnen sitzt.
Bindung Zeit.
>> ROB: Also, mit dem ersten Problem zu starten?
ALI: Ja.
Wir können starten.
Willst du mich -
Ich kann gehen.
Also, wir zu den pset specs gehen.
Oh, warum ist es -
ROB: Control.
ALI: Okay, so werden wir in Antworten auf diese Dinge so gut?
ROB: Oh, yeah.
So -
ALI: Oh, tat jeder Uhr Robs mit Shorts?
Okay, cool.
ROB: Yeah, ich glaube nicht, wir unbedingt erwartet Sie zu haben
sah es, bevor er nach diesem Abschnitt, aber wir können die zu diskutieren
Probleme bereits im Vorfeld, da sie unter dem Abschnitt von Fragen Dinge sind.
Also, wenn Sie es nicht beobachtet haben, keine Sorge.
Diejenigen, die versuchen können, und beantworten.
>> So ist die erste Frage, was ist ein Pre-Prozessor, wie funktioniert # include
beziehen?
So hat jemand Antwort darauf?
ALI: You guys sprechen es aus.
Sure, go ahead.
SPEAKER 2: # include gibt einige bereits geschriebenen Code, und statt
Kopieren und Einfügen in Ihr Programm, indem man einfach sagen gehört es,
Die Pre-Prozessor weiß, dass es sie gibt und dass sie es in hinzuzufügen
später oder bevor irgendetwas anderes passiert.
ALI: Yeah, awesome.
Cool.
ROB: Also, wenn Sie tatsächlich das Kompilieren eines Programms, ist die Pre-Prozessor diese
erster Schritt.
Compilation geschieht in vier großen Schritten.
So ist die Pre-Prozessor ist das erste große, und es ist dieser Kerl, der geht
durch und sieht für alle diese Hash Symbole.
Und jeder Zeile, die mit einer Hash beginnt, sieht der Vorprozessor es an und sieht
wenn sie zu verarbeiten.
So # include erzählt die Pre-Prozessor für einige cs50.h aussehen
Datei und kopieren Sie einfach und fügen Sie den Inhalt in dieser Datei.
So kann man wirklich # include, was Sie wollen, aber es ist vor allem sein wird
. H-Dateien.
Wir haben nicht bekommen, um # noch zu definieren, so dass keine Rolle.
ALI: Ja, wir sind gut auf, dass man.
Hat jemand irgendwelche Fragen dazu?
Sind wir gut?
Nächste Frage.
>> SPEAKER 3: In der kurzen, es war etwas über c als gut.?
Ist das relevant oder ist es irrelevant?
ROB: Über c mit dem Pre-Prozessor.?
SPEAKER 3: Ja, oder habe ich etwas ausdenken?
ROB: So die kurze worden sein könnten, welche vor der Verarbeitung dieser Datei und
. Ausgabe an einem anderen C-Datei, so können Sie vorab diese Datei verarbeiten -
wenn Sie gerade laufen wie machen hallo oder clang hello.c, tust du das alles
die Zusammenstellung in einem großen Schritt.
Aber man kann explizit tun es in seine einzelnen Schritte.
So kann man zuerst vor-verarbeiten.
Dann können Sie kompilieren, dann können Sie montieren, und dann können Sie zu verknüpfen.
Wir werden zu diesen anderen diejenigen bekommen.
Aber Pre-Processing, Sie Art Pre-Prozess, und dann geht es in
anderen. c-Datei.
Da Pre-Processing nicht wirklich etwas ändern.
Es ist nur ein Haufen von kopieren und einfügen.
Sie können manuell kopieren und fügen Sie es selber.
ALI:. Und klar zu sein, die c-Datei eine C-Datei ist, so ist es
geschrieben in C-Code.
Es ist also aus C-Code in C-Code geht.
Du bist nur das Hinzufügen von mehr Code mit dem Pfund.
ROB: Wenn Sie es vorverarbeitet, ist es immer noch eine gültige C-Datei.
SPEAKER 3: Okay.
ALI: Gute Frage.
Ich mag diese.
Okay, nächste Frage.
>> Was ist der Compiler?
Anyone?
Ja.
SPEAKER 4: Es ändert die vorbearbeitete Code in der Montage.
ALI: Perfect.
ROB: Ja.
ALI: Cool.
ROB: Also das ist, was der Compiler ist speziell tut
wenn wir mit Clang.
In einem sehr allgemeinen Sinn, ist ein Compiler wie unter Code in einer Sprache
und verwandelte sie in eine andere Sprache.
Also in C -
oder, na ja, ist Clang unter Code, das ist in C und Umwandlung bis zur Montage.
Und Sie müssen nicht in der Lage sein, um die Montage überhaupt zu verstehen.
Aber das ist die Sprache, die es verwandelte sie in.
>> ALI: Okay.
Und dann, was ist ein Assembler?
Anyone?
SPEAKER 5: [unverständlich], um binäre?
ALI: Sorry, was?
SPEAKER 5: [unverständlich], um binäre?
ROB: Yep.
ALI: Ja.
ROB: So der Assembler -
Assembler-Code ist wirklich, wirklich, was Ihr Computer verstehen kann schließen,
aber denken Sie daran, dass es nicht ganz verstehen, den Text
das ist Assembler-Code.
Sie müssen es in gerade 1s und 0s konvertieren.
Es ist wie eine direkte Übersetzung Prozess.
Wir könnten Ihnen nur eine Tabelle, was jeder
Montageanleitung bedeutet.
Aber die Assembler ist gerade dabei diese Übersetzung für Sie.
Es ist die Umwandlung der Assembler-Code in 1s und 0s.
>> ALI: Und dann, für das letzte, was ist ein Linker?
Und wie funktioniert-LCS50 beziehen?
Anyone?
ROB: Das ist die härteste und am wenigsten erklärte ein in der Compiler-Video.
ALI: Hat jemand erinnere mich-LCS50 in einem Befehl?
SPEAKER 6: Wenn Sie zu machen ging.
ALI: Es ist in der machen.
Yeah, cool, okay.
Gibt es irgendwelche Vermutungen oder vage - ja, zu gehen.
SPEAKER 7: Ich bin mir nicht sicher, weil Ihre kurz war wirklich [unverständlich], aber es war
etwas zu tun separate Dateien mit jeder Bibliothek und dann setzen
sie alle zusammen in einer Bibliothek?
ROB: Ja.
Also, wenn Sie hello.c haben, ist es ein wirklich einfaches Programm.
Sie sind wirklich nur eine Sache tut in ihm.
Aber wenn man in andere Programme zu bekommen -
und ich denke, auch wenn Sie in Ihren Programmen GetString, Sie starten müssen
einschließlich anderer Dateien.
Also das CS50-Bibliothek ist eine solche Datei, in denen wir die Implementierungen
der GetString und GetInt und all diese Dinge.
Also, was die Linke tut, ist es geht um Sie durch all diese
Dateien, zu sehen, wo Funktionen definiert werden, um sicherzustellen, dass, wenn ich rufe
GetString irgendwo, es, dass GetString weiß, bedeutet, dass es das ist
GetString über in der CS50-Bibliothek.
So der Linker dauert nur all diese Dateien, zerschlägt sie zusammen, und jetzt
Sie haben eine ausführbare.
So im Hinterkopf behalten, wenn Sie den CS50-Bibliothek sind, können Sie sowohl die Notwendigkeit
# An der Spitze sind, und dann auch in Ihrem Make-Befehl, wie Sie
sagte, du musst die-LCS50 haben.
So können Sie nicht nur ein.
So das ist nur etwas im Auge für späteres Nachschlagen aufzubewahren.
>> SPEAKER 8: Also, lasst uns sagen, es war eine andere Bibliothek, wie cs51.h, würden wir
müssen auch Add-lcs51?
ROB: Der einzige Grund, this-LCS50 funktioniert perfekt ist, weil wir diesen Satz haben
bis an einem bestimmten Ort in Ihre Geräte so, dass sie weiß, was
LCS50-Mittel.
Wir könnten Ihnen nur eine cs50.c Datei, und dann könnte man es übersetzen, sagen
Clang hello.c cs50.c, und dann würde es die ausführbare Datei, indem Sie machen
diese beiden Dateien zusammen.
Er weiß, dass-LCS50 cs50.c über in ein Verzeichnis, dass wir in festgelegten bedeutet,
Ihre Geräte.
Also, wenn Sie wollten eine cs51.c zu sein, indem einfach nur sagen-lcs51 vorgebbaren
dann würden wir auch brauchen, um es in dieses Verzeichnis legen also wo weiß
suchen sie.
ALI: Was war Ihre Frage?
>> SPEAKER 7: Warum haben Sie den CS50 verknüpfen
wenn - wasn't kopieren / einfügen in der ersten Stufe, wenn Sie es vorher bearbeitet?
ALI: Wollen Sie es?
ROB: Sicher.
Also das cs50.h Datei ist getrennt von der cs50.c C-Datei.
Haben Sie bekommen, um Prototypen in der Klasse funktionieren?
Okay.
Also im Grunde ist das cs50.h Datei gerade dabei, kopieren und einfügen -
ALI: Haben Sie Jungs wissen, was Signaturen sind?
Okay, so ziemlich viel, wenn man sich -
ROB: Nehmen wir an, cs50.h ist nicht da.
Nun ist diese Datei -
du tust string s = GetString.
Aber wenn wir zu diesem Punkt im Code bekommen, hat er keine Ahnung, was
GetString ist.
Es weiß, dass es eine Funktion, da Sie nennen es sind.
Aber es bedeutet nicht, dass es eigentlich soll einen String zurückgeben.
So wie ich schon sagte, string s = GetInt, bedeutet dies keinen Sinn, da
Sie unterschreiben eine ganze Zahl in einen String.
Aber es bedeutet nicht, dass GetString keinen Sinn machen, weil es nicht
wissen, dass GetString einen String zurückgibt.
Also, was cs50.h sagt, ist so etwas wie dieses.
ALI: Also, was Rob ist die Eingabe ist, ist es ein Versprechen in einer Weise, dass es zu gehen
haben diese Funktion aufgerufen GetString.
ROB: Das ist alles, cs50.h ist das Kopieren und Einfügen in hier, wie auch
Als GetInt und all diese Dinge.
Und das sagt nur, dass GetString hat einen String zurückgeben.
Sie wissen nicht, wie es noch implementiert ist, aber wenn wir zu dieser Linie, jetzt
sie weiß, dass es richtig eine Zeichenfolge zurückgibt.
>> SPEAKER 9: Also, wenn wir nicht mit der # include Sache und stattdessen die Mühe
schrieb gerade den Prototyp für diejenigen, die wir tatsächlich zu benutzen?
ROB: Yeah.
Also lasst uns laufen diese.
SPEAKER 9: Ist es das?
Also, standardmäßig, würde es den-l CS50, nur weil zu tun -.
ROB: - Ausdruck.
ALI: Ja, denn wie Sie gesagt haben, ist es in der Make-Datei.
ROB: cs50.h zufällig auch typedef char * zu String sein.
Sie können völlig ignorieren, was das jetzt bedeutet.
Aber das ist auch etwas in cs50.h. enthalten
So, jetzt alles funktioniert völlig in Ordnung.
Es läuft genau das gleiche wie damals, als wir hatten war einfach
die # include.
Und so wie cs50.h geschieht über-include Dinge, die Sie brauchen -
wie, verwenden Sie nicht die GetInt in diesem Programm, aber es spielt keine Rolle.
Es wird einfach ignorieren.
ALI: Und dann, wenn Sie die-LCS50 tun hier und hier, was geht
, ist, dass es mit den tatsächlichen umsetzbare Code.
Also das ist, wo es eigentlich tun das -
Schreiben des Codes für GetString.
Es ist also nicht nur ein Versprechen mehr.
Es ist tatsächlich durchlaufen und unter den String und all das Zeug.
Sinn?
Haben Sie Fragen? Gut.
Coole Bohnen.
>> ROB: Jetzt können wir auf eigentliche Code.
ALI: Okay.
So, hier ist das erste Problem.
So heißt es ein Programm schreiben, das den Anwender nach einem Kleinbuchstaben aufgefordert
Brief und wandelt sie dann ohne Verwendung bitweise Großbuchstaben
Operationen, nach der Probe-Ausgang unten.
Damit Sie sehen können, führen Sie das Programm mit. / A.out, und dann bist du
werde in Kleinbuchstaben a setzen, und Ihr Programm sollte aus der Hauptstadt
A. Also, warum nicht you guys all give it a shot am CS50 Spaces?
So you guys können alle hier.
Und Sie können den gesamten Code hier löschen.
Und dann kann man weitermachen und die Kodierung der Sache.
ROB: Sie werden wahrscheinlich wollen GetChar, das ist zu verwenden
enthalten in der CS50-Bibliothek.
ALI: Ich denke, es wäre besser, wenn Sie den oberen Teil zu retten.
So möchten Sie vielleicht ändern Sie einfach das Zeug in der Mitte.
Gehen Sie voran und arbeiten.
Fühlen Sie sich frei, um miteinander zu arbeiten.
Rob: Und Sie können Fragen stellen, wenn Sie -
>> SPEAKER 10: Was ist ein bitweise Operation?
ROB: Also, ignorieren, dass für dieses Problem.
ALI: Wenn Sie es nicht wissen, das ist gut.
ROB: Wir werden es im nächsten Probleme nutzen.
Aber wenn Sie nicht wissen, was ein bitweisen Operator ist, ist das in Ordnung.
SPEAKER 10: Ist das wie Drehen nach ASCII-Code?
ALI: Nein
ROB: Nein
Sie können, dass für dieses Problem zu tun.
SPEAKER 10: Wie machst du das?
Also, wenn ich nur irgendwo zu schreiben -
ALI: Oder etwas zum Schreiben.
ROB: Ich konnte nur eine Art von Typ in diese.
ALI: Typ an der Spitze.
ROB: Oh, ich bin auf einem mic sitzen.
>> So sahen wir in der Vorlesung, dass die ASCII-Wert für das Kapital A 65 ist.
Und Kapital B wird 66 sein, und so weiter.
So können Sie buchstäblich mit 'A', die Zahl 65 bedeutet.
Möchten, ist dies der Wert 65.
'A' - ich kann so etwas wie int x = 100 zu tun. Und nun x hat den Wert
100 bis 65.
ALI: Sie können das und zeigen, dass.
Oh, vielleicht auch nicht.
Das macht nichts.
ROB: Ich hatte sie zu drucken.
SPEAKER 10: Wie machen Sie es zurück zu Charakter?
ALI: Also, wenn Sie tun nicht -
Sie nur mit Gewalt zu char A sein, entspricht.
ROB: So gibt es ein -
die Unterscheidung zwischen einem char und einer ganzen Zahl ist nur in Bezug auf Größe.
So eine ganze Zahl passiert in der Lage sein, Dinge zu machen bis
zu, wie vier Milliarden Euro.
Ein Zeichen ist nur in der Lage, Dinge zu machen bis zu 255.
Aber es gibt keinen Unterschied zwischen ihnen andere als diese.
So kann man sagen, char c = 65.
Das ist gleichbedeutend mit der Aussage char c gleich 'A'.
ALI: Oh, nein.
Es ist nicht wirklich sparen Dinge.
ROB: Nein, Sie können das nicht tun.
ALI: Das ist nur -
[Stöhnt]
>> ROB: Okay, so was Ali gerade schrieb, war ein Programm, das erste druckt 100 -
'A' als ganze Zahl, die 35 war, wie wir es erwarten, weil 100 minus das ASCII-
Wert von A beträgt 65 Jahre.
Dann ausgedruckt mit% c, die zu interpretieren es als ein Zeichen bedeutet.
Also 100 - eine ist 35.
Dolmetschen, dass als Zeichen geschieht, die Raute sein.
Wenn Sie an asciitable.com oder was auch immer anschauen, werden Sie sehen, dass 35 ist das
Raute.
ALI: Okay, alle anderen Klarstellungen über das Problem?
Okay, kann euch voran gehen und tun es dann.
Fühlen Sie sich frei, um Fragen zu stellen oder miteinander reden.
Oder wenn Sie bereits erledigt haben, können Sie sich entspannen.
>> LUCAS: Sind sie der gleichen Klasse, alle Kleinbuchstaben in Ordnung und
auch die Großbuchstaben sind auch in Ordnung, denn das ist etwas Nützliches für
das Problem.
ALI: Guter Punkt, Lucas.
Also, habt ihr all das bekommen?
SPEAKER 11: Ja.
Das ist, wie Sie es tun, nicht wahr?
ALI: Richtig.
ROB: Yeah.
SPEAKER 11: [unverständlich]
ALI: All right.
ROB: Was ist die Frage zu fragen?
Nur zu konvertieren -
ALI: Konvertieren Sie die Kleinbuchstaben der Großbuchstaben.
Das war's.
ROB: Okay.
ALI: Sollten wir es geschrieben?
Ich denke, wir müssen einfach schauen jemand anderes.
ROB: Also für diejenigen, geklebt werden könnte, ein Weg -
wenn ich etwas char c haben, und sagen wir es passiert der Buchstabe D.
So jetzt, wie kann ich herausfinden, was Buchstaben des Alphabets C ist?
Nicht D, aber ich meine, geschieht D der vierte Buchstabe des Alphabets.
Und wenn wir das Zählen von 0 beginnen, dann ist es der dritte Buchstabe des Alphabets.
Also, wenn A 0, B 1, C 2 ist, D 3, wie kann ich herausfinden, int position -
Welche Position des Alphabets C ist?
Hat jemand irgendwelche Ideen?
ALI: Ich denke, sie sind alle Codierung.
ROB: Was ist mit dem ersten?
SPEAKER 12: So was A ist, subtrahieren Sie die erste?
ROB: Yeah.
ALI: Yeah, awesome.
So könnten Sie tun Kapital D -
oh, sorry.
Sie nehmen den Charakter und subtrahieren Sie den ersten, wie Sie sagten.
ROB: Also, wenn D ist so etwas wie 68, und wir subtrahieren, die ist 65, dann bekommen wir
3, sagen uns, dass D ist der dritte Buchstabe des Alphabets
ab 0.
So können Sie diese verwenden.
Jetzt wissen wir, was Buchstaben des Alphabets, in Bezug auf
Großbuchstaben, oder -
könnten wir die gleiche Sache für Kleinbuchstaben tun, um herauszufinden, was
Kleinbuchstaben Position wir sind in.
Und wir können, dass dann konvertieren, dass in Großbuchstaben mit einem
sehr ähnliche Idee.
Fordern Sie Anregungen?
>> ALI: Do you guys - warten, ich weiß nicht, wie weit ihr seid.
Sind die meisten von euch getan, bist du noch arbeiten, werden Sie stecken?
You guys kann schreien -
stecken.
Eine Person sitzt fest.
Cool.
Ich neige dazu, geklebt werden, auch.
SPEAKER 13: Ich bin fertig.
ALI: Du getan?
Okay.
Fertig.
SPEAKER 13: [unverständlich]
ALI: Yeah, cool.
Sind Sie überprüfen, ob es in Kleinbuchstaben Form ist?
Okay, cool.
Wo sind andere Menschen?
Hat dieser Tipp hilft Ihnen, wie un-haften selbst?
SPEAKER 14: Nicht wirklich, aber nur weil ich nicht weiß, ich bin nicht
Verdauen es noch nicht.
ALI: Okay, cool.
Wollen Sie versuchen -
oder willst du zu gehen und zu sprechen?
>> ROB: Was ich sagen wollte ist -
so mit diesem.
Verstehen Sie, wie wir, welche Position des Alphabets
der Brief ist in?
SPEAKER 14: Okay, also, wenn Sie Sachen in einfache Anführungszeichen,
das gibt eine Zahl?
ROB: Ja.
Es wird auf die ASCII-Wert stellt es übersetzt werden.
So wollen Sie in ASCII-Tabelle oder was auch immer es ist zu gehen?
ALI: Just one of these?
ROB: Yep.
Also, wenn Sie jedes dieser Symbole, ignorieren viele der -
ALI: [unverständlich]
ROB: Oh, mit dem Cursor.
ALI: Ja.
Das war spannend.
ROB: Also, ignorieren diese, die auf der linken Seite, die spezielle Symbole sind -
wenn Sie eines dieser Symbole stellen in einfache Anführungszeichen, dann wird es
übersetzt diesen Wert auf der linken Seite.
ALI: Dies ist die Dezimalzahl für sie.
Es ist wie ein Treffer mit 65, B 66, und Sie werden feststellen, dass sie alle in
alphabetischer Reihenfolge, die einen Unterschied macht.
So, wie Rob sagt, vor, in diesem Code, waren wir die Berechnung der Entfernung von
der erste Brief, per se.
Und das werde die gleiche sein, ob es groß oder klein ist.
ROB: Also, wenn wir D, 68 taten minus A, 65, bekommen wir 3.
Da D drei Positionen in den Alphabet.
ALI: Also, wie würden Sie übersetzen, dass über den kleinen d zu finden?
ROB: Yeah.
Also, wenn ich 3 haben jetzt weiß ich, ich will drei Buchstaben in die zu gehen -
wir passieren zu gehen Kleinbuchstaben jetzt, aber sagen wir, ich möchte drei gehen
Positionen in den Kleinbuchstaben Seite der Dinge.
Also, wie kann ich das tun?
Ich weiß Kleinbuchstaben a 97.
So, wie finde ich drei Positionen in den Kleinbuchstaben?
>> SPEAKER 15: Ich habe eine Frage eigentlich.
ALI: Yeah, go ahead.
SPEAKER 15: Also, für dieses, es spielt eigentlich keine Rolle, ob ich diese Position kennen,
mag, brauche ich nicht diese Tabelle.
ROB: Nope.
Sie müssen nie eine dieser Nummern zu verwenden.
Und dies ist ein wichtiger Punkt in Ihrem Programm, dass Sie sollten nie hart
codieren eine dieser Konstanten.
Mit 'A'. nie 65 oder 97.
ALI: Das nennt man magischen Zahlen, und sie sind wirklich verwirrend.
Wie, wenn Sie das Debuggen einen Code, können Sie nicht daran erinnern, was
Sie verwendet sie für.
Und für uns mit einem Gehalt von Code, werden wir nicht wirklich wissen, was
Sie verwenden sie für.
Also ist es besser, wenn Sie tatsächlich die Zeichen so macht es
mehr Sinn für die Menschen.
Okay, alle anderen Fragen?
Immer mehr Menschen tun, oder -
Ich denke, wir überprüfen können.
Es ist wirklich gruselig, dass man Leute Code zu sehen.
ROB: Yeah.
Wir haben nicht das hier tun.
Wir wissen nicht, die Namen von Personen, entweder.
ALI: Oh yeah, gut, dass es besser macht, so dass wir noch mehr unvoreingenommene
statt nur wahllos jemanden.
Mach dir keine Sorgen.
Ich werde es nicht tun.
Wenn Sie random things about - egal.
Okay.
Wie sind die Menschen tun?
>> SPEAKER 17: So die neunte Zeile sollte auszudrucken einen Charakter?
ROB: Ja.
ALI: Ja.
Also, wenn Sie gehen -
ROB: Oh, kann das nicht tun.
ALI: Du wirst sehen, dass es die Raute gedruckt.
SPEAKER 17: Oh, okay.
ROB: Ich denke, ein weiterer Weg Sie die Dinge sehen kann ist, dass wir Druck von zwei
Zeichen.
Zuerst ein wir Bedrucken ist der Brief A.
Der nächste wir Ausdrucken ist nur 65.
Es wird wahrscheinlich schreien mich an für diese.
Also, wenn wir laufen nur diese, werden Sie feststellen, dass es ein beide Male gedruckt.
Da fragen wir es die gleiche Sache.
Wir bitten Sie, den Brief A. Drucken und dann fragen wir sie, um den Druckauftrag
Nummer 65 als Charakter, was dasselbe ist interpretiert.
ALI: Haben Sie etwas zu sagen?
Oh, nur ein Scherz, sorry.
Alle Rechte, wie sind die Menschen -
ROB: Wir können nur durch sie hindurchgehen.
>> ALI: Okay, also wie soll man anfangen?
Anyone?
Als Hinweis, wir haben etwas von den Menschen bekommen, von den typers.
SPEAKER 18: [unverständlich]
ALI: Oh yeah, eine Aufforderung, perfekt.
Also werden wir geben -
was tun wir geben?
Anyone?
Oder soll ich einfach geben Sie es?
Sind wir eigentlich die Eingabe der -
ROB: Sicher.
ALI: So werden wir eine printf es Eingabeaufforderung, so können wir
möchten, geben Sie mir ein Zeichen.
Okay, und was dann?
Warum tut sie das?
ROB: Ich weiß es nicht.
ALI: Okay.
So, jetzt sind wir ihnen zu sagen, um uns ein Zeichen.
Aber dann, wie Sie tatsächlich das Zeichen?
SPEAKER 19: Verwenden GetString.
ALI: GetString?
GetChar?
Okay, so was ist der Unterschied zwischen einem String und einem char?
SPEAKER 19: Strings sind eine Reihe, wie ein Array von Zeichen.
>> ALI: Cool, yeah.
Also in diesem Problem, wir müssen nur ein Zeichen in einer Zeit betrachten, so
wir nur gehen, um GetChar für diese Instanz zu tun.
ROB: Wir implementieren könnte eine Funktion, wenn wir wollten, dass dauerte einen ganzen String
und ging über die Saite und verändert alle Kleinbuchstaben in Großbuchstaben und alle
Großbuchstaben in Kleinbuchstaben.
Aber hier sind wir nur gefragt, für ein Zeichen.
ALI: So, jetzt haben wir den Charakter hier, aber dann müssen wir sie zu speichern.
Also fügen wir char c - was?
SPEAKER 20: Definieren Sie die Variable.
ALI: Ja, genau.
So haben wir unseren Charakter.
ROB: Ich glaube, Sie könnten -
Sie sind nur drei Räume, weshalb es bei Ihnen ist zu schreien.
>> ALI: Okay, cool, jetzt haben wir Tab Set, was passiert als nächstes?
Was ist der nächste Schritt?
ROB: Was unser Programm tun sollten, ist zu ändern einen Kleinbuchstaben ein
Großbuchstaben.
Was ist, wenn ich die Raute geben geschehen?
Ist, dass -
ALI: Es ist ein gutes Symbol.
Wir verwenden es eine Menge.
ROB: Ist das ein gültiges, was ich kann, um einem Großbuchstaben Form zu überführen?
SPEAKER 21: No
ALI: Nein
Wir sollten prüfen, ob.
So können wir haben eine if-Anweisung überprüft, so, wenn die c größer ist als
oder gleich dem Kleinbuchstaben 'a'-
also, wenn wir auf die Tabelle schauen, werden Sie feststellen, dass es zwischen hier sein muss,
bei 97 und die Kleinbuchstaben a.
Und es kann jede von ihnen zu sein, und in Schritten den ganzen Weg hinunter.
Und dann gibt es bei 122 z.
Und es muss zwischen diesen beiden Werten liegen.
Macht das Sinn?
ROB: Also, wenn c nicht zwischen 97 und 122 -
oder sollten Sie nie brauchen, um diese Zahlen zu verwenden - wenn c nicht zwischen "a" und
'Z', dann war es kein gültiges Zeichen für uns in Großbuchstaben.
ALI: So in Form eines Codes, sagen wir, dass, wenn c größer als oder gleich einzigen
Bei Kleinbuchstaben -
wow, wie hast du das gesagt?
Okay, ist größer als oder gleich dem Kleinbuchstaben "a", und es muss oben sein
Die Kleinbuchstaben "z". So hat es sich als weniger als oder gleich 'z' Kleinbuchstaben.
Wir machen sicher, dass es zwischen den beiden.
Dann können wir weiter mit unserer glücklichen Code.
Was?
ROB: Also ich dachte, wir würden nur immer wieder fragen, wenn wir nicht einen Fall
Kleinbuchstaben.
ALI: Oh, ich war nicht bewusst.
Entschuldigung.
>> Okay, also, wenn wir dabei sind zu tun, wie Rob sagt, und stellen Sie sicher, dass -
können wir immer wieder fragen sie, was dann sollen wir tun?
SPEAKER 22: [unverständlich]
ROB: Yeah.
Wir sollten eine Art Schleife.
Da der Benutzer eingeben kann etwas ungültiges eine ungezählte Menge an Zeit.
So können Sie eine while-Schleife.
Der Zweck einer do-while-Schleife -
wahrsten Sinne des Wortes, das einzige Mal in Ihrem ganzen Leben werden Sie jemals verwenden do-
while-Schleifen ist, wenn man für Benutzereingaben gefragt sind.
So die Tatsache, wir für Benutzereingaben fragen hier ist ein Hinweis darauf, dass wir sollten
verwenden Sie eine do-while-Schleife.
Und warum ist das so?
Weil do-while-Schleife geschieht immer mindestens einmal.
Also, wenn Sie für Benutzereingaben zu fragen, Sie wollen, dass mindestens einmal passieren.
Und dann, wenn die Dinge erfolgreich waren, können Sie weitermachen.
Wenn nicht, gehen Sie zurück und wieder fragen.
>> ALI: Also mit anderen Worten, wir müssen Abschnitt.
Und so sagt sie, etwas zu tun.
So printf -
Drucken Sie die Anweisung, die Eingabeaufforderung, und erhalten auch den Charakter, oder zu versuchen,
bekommen Sie ein Zeichen.
Und dann haben wir zu prüfen, ob es tat es tatsächlich richtig.
Also haben wir die Bedingungen hinzufügen, dann sagen wir Weile, und dann haben wir die
bedingte Anweisung.
ROB: Aber jetzt haben wir den Gedankengang umgekehrt.
Jetzt haben wir ursprünglich sagen, wenn c in diesem Bereich liegt, ist es gültig.
Jetzt wollen wir, dass umkehren und sagen, wenn c nicht in diesem Bereich, dann werden wir
brauchen, um wieder um die Dinge wieder tun.
ALI: Oh, yeah.
ROB: Während also das ist nicht wahr, wir wollen zurück zu gehen und
fragen Sie nach einem anderen Charakter.
Hat jeder das sehen?
Fragen zum Thema?
Okay.
>> So, jetzt haben wir ein gültiges Zeichen, dass wir in Großbuchstaben.
ALI: Also, was ist der nächste Schritt für uppercasing es?
SPEAKER 23: In 32.
ALI: Sie fügen -
sorry, was?
SPEAKER 23: Kannst du nicht einfach fügen 32?
ROB: Also ja, nicht im Sinne von magischen Zahlen.
Sie sollten nur mit single-quote stuff.
SPEAKER 23: Okay, gut -
Rob: Aber Sie können 32 bekommen -
ALI: Wie hast du die Nummer 32, glaube ich, ist das, was wir sagen.
SPEAKER 23: [unverständlich]
ROB: So können wir kommen mit der Nummer 32 zusammen -
SPEAKER 23: [unverständlich]?
ROB: Yeah.
Aber wenn wir es in den zwei Schritten wir haben vorher mit
die Position Zeug.
So dass die Position in dem Alphabet dass c zufällig ist c minus Kleinbuchstaben
'A'. Also, wenn wir einen Kleinbuchstaben "d" eingegeben haben, wird die Position gehen bis 3 sein.
Und jetzt wollen wir die Dinge auf die Groß-Reihe von Dingen zu nehmen.
So, jetzt unsere neuen c wird in der Hauptstadt 'A' plus Position sein.
So machen die Leute sehen, wie das bringt uns -
wir aus dem Kleinbuchstaben Bereich bewegen, die genaue Tiefe waren wir in der
Reichweite und hinunter in die Groß-Bereich, und so weit zu gehen
wieder darauf, wird das werde das gleiche Zeichen, aber jetzt
Großbuchstaben umgewandelt.
ALI: Und für die Menschen, die durch wie verwirrt wurden sagte er nur 32,
Grundsätzlich verband er beides in einer Anweisung.
So eine gleichwertige Art des Schreibens folgendes zu sagen Sie können nur eine Art
Ersatz Position, legte die c minus 'a,' und es hier richtig.
Also, was er tat, tun nicht I -
char newc = Großbuchstaben 'A' plus c minus Kleinbuchstaben 'a'. Und weil der Algebra,
Sie können sie bewegen.
Man kann auch sagen, dass man es bewegen, so char newc = Großbuchstaben 'A'
minus Kleinbuchstaben "a" plus c.
Und dies, werden Sie feststellen, wenn wir wieder nach der Tabelle gehen.
Wir haben Großbuchstaben A 65 und Kleinbuchstaben a 97.
So 65 bis 97 ist -32.
>> Hallo.
Nehmen Sie Platz.
Oh.
Sie können gleich hier sitzen.
Cool, okay, awesome.
Willkommen in Abschnitt.
Sie werden bemerken, dass die Differenz 32 ist.
Also das ist, wo er diese Zahl hat.
Aber es ist nicht, wie Rob sagt, der beste Weg, es zu tun, weil es die seltsame hat
magische Zahl Verwirrung.
ROB: Sie sollten Kapital zu nutzen A minus Kleinbuchstaben ein.
Sie sollten nicht nur gerade 32.
SPEAKER 24: Warum ist das wieder?
Warum sollten Sie nicht verwenden, 32?
ALI: Wenn wir es getan haben, wäre es char newc = -32 + c.
Und wenn Sie nicht sehen, eine der Rest von ihm, wenn dies alles vorbei ist und Sie
sehen nur dieses einzige Zeile, dann, wie Sie wissen, was die negative 32 ist?
Es ist einfach fehl am Platz.
ROB: So wird Ihr Programm würde völlig in Ordnung arbeiten.
Es ist nur ein Stil Sache.
Jemand geht in und Lesen Ihres Codes, sie sind wie was 32 bedeuten?
Vielleicht sind sie tun nicht -
Ich würde wahrscheinlich nicht sofort erkennen, dass 32 passiert zu sein
Unterschied zwischen einem Kleinbuchstaben und einem Großbuchstaben, obwohl
werden wir diese Tatsache in das nächste Problem zu verwenden.
32 ist -
Sie könnten einen Kommentar darüber sagen 32 zu verlassen ist der Unterschied zwischen
'A' und 'a ". Aber an diesem Punkt, warum nicht einfach 'A' und 'a', und Sie
müssen nicht den Kommentar dann.
>> ALI: Es ist nur die Art und Weise darüber ein viel sauberer, style-weise sind.
Und so, da Sie gerade erst anfangen Programmierung -
oder ich denke nicht, da du hacker edi sind - egal.
Es ist einfach eine gute Möglichkeit zu haben -
es ist besser, besser Stil haben.
Es ist einfacher, für andere Menschen zu lesen.
ROB: Sie sollten nie brauchen, um die ASCII-Tabelle erinnern, je zuvor.
Sie sollten nur in der Lage sein, die einzelnen Anführungszeichen verwenden.
Haben Sie Fragen?
ALI: Jeder gut?
ROB: Okay.
Also das nächste Problem ist beträchtlich.
Also das nächste Problem fragt uns -
ALI: Das nächste Problem ist für uns zu fragen, die gleiche Sache zu tun, aber zu bedienen
Bit-Operatoren.
ROB: Und natürlich haben wir nicht bitweisen Operatoren noch nicht gesehen.
Also werden wir jetzt diskutieren diese.
ALI: Seien Sie gespannt.
Sie sind super Spaß.
>> ROB: So die regelmäßigen Operatoren, wie x plus y, minus, mal, Kluft.
ALI: Geben Sie in dieser Eingabeaufforderung.
Rob: Es gibt auch%, wenn Sie es nicht gesehen haben, die Sie durch die Nutzung
Prozent Symbol.
Aber wir werden nicht die für dieses Problem.
Wir wollen bitweise Operatoren verwenden.
Jetzt denken Sie daran, brachten wir es in der Vorlesung ein.
Ich bin mir nicht sicher, ob wir binäre darüber hinaus diskutiert.
Aber denken Sie daran, dass jede einzelne Zahl dargestellt wird -
gut, alles -
ist in 1 und 0 in binärer vertreten.
Das heißt also, dass, wenn ich die Zahl 8 sagen, dass ich zu wissen, dass das ist geschehen,
dergleichen, 1000.
Was bitweisen Operatoren lassen Sie uns auf dieser Bits zu betreiben -
Auf diesen Bits direkt zu betreiben.
Jetzt bin ich nicht mehr um in Bezug auf acht.
Ich bin in Bezug auf 1000 zu tun, und ich will die Dinge mit denen zu tun
einzelnen Bits.
So Ali hat die bitweisen Operatoren hier geschrieben, aber that's -
Die Zahl 8 haben wir als eines unserer Beispiel-Nummern verwenden werden.
Und die binäre Darstellung ist 1000.
Wir verwenden eine andere Nummer, 5 -
tatsächlich verwenden wir 9 und 5.
Und die 5 der Binärdarstellung ist 00 -
0101.
ALI: Ist jeder gut auf, dass?
Die binäre Zeug?
Es war von der ersten Vorlesung?
>> ROB: Also selbst wenn Sie sich nicht ganz an der Spitze, wie die Dinge zu konvertieren
binäre, das ist nicht ganz wichtig für dieses Problem.
Wir werden Sie es, aber Sie müssen viel mehr Chancen, um herauszufinden, wie man
schnell wieder Dinge in binär.
Also mit 9 und 5, jetzt haben wir unsere bitweisen Operatoren.
Oh, und auch, 9 und 5, wenn es eine ganze Zahl ist, dann ist es wirklich ist 32 Bit,
das heißt, wir haben wie 0, 0, 0, 0 eine Menge Zeit, dann
101 auf der ganz am Ende.
Das ist einfach, weil, egal was du tust, in Zahlen, 32 bits.
Nur weil wir nur noch vier Bits bis 9 stellen bedeutet nicht, dass wir nicht
mit bis die anderen 27 Bits für nur 0s.
ALI: Nur um zu klären, eine dieser Nummern, die eine 0 oder eine 1 ist ein bisschen.
Dieser ist 4 Bits.
Wie so Rob sagte, dass Maschinen zu speichern in 32.
Also müssten sie 32 entweder eine 0 oder eine 1.
Cool?
ROB: Die Bit-Operatoren.
Die erste, die wir behandeln, lass es uns tun und.
Also, wenn wir tun, 9 & 5.
Also, was und tut, ist, Stück für Stück, vergleicht er die Bits der beiden Zahlen
und, wenn die beiden Zahlen 1 sind, dann gibt eine 1.
Wenn man eine 0 ist und das andere ist a 1, oder beide sind 0s, dann gibt eine 0.
So können Sie es als Ihre logischen ANDs denken.
Wie Sie brauchen echte und wahre true zurückgeben, aber wahr und falsch ist falsch.
So ist es die gleiche Sache, aber jetzt sind wir mit ihm den Umgang mit nur Bits.
>> ALI: Also, wenn Sie dies zu betrachten, haben Sie 1 -
Sie legen Sie sie, so dass es dann 1 und 0 sein.
Do you guys denke, das wäre - was würde das auszuwerten, um?
SPEAKER 25: 1.
ALI: Cool.
Oder nein.
Entschuldigung.
So macht das Sinn macht?
Also, was ist das kollektive Antwort wieder?
Entschuldigung.
Wenn wir also 1 und 0, so was bekommen Sie?
ROB: Sie glauben also, wie Sie sagen, und laut.
Wenn man zwei Bits haben, x und y, muss x und y 1 sein, damit sie
auf true - oder, damit es auf 1 zu bewerten.
Falls x oder y 0 sind, dann ist es den Wert false oder 0.
LUCAS: Es ist gut, auch daran erinnern, dass 1 wahr ist und 0 ist falsch.
Also, wenn Sie true & false gesetzt, ist es falsch.
Aber dann, true & true, true.
Falsch & false false.
ALI: Wir haben true & false.
So 1 und 0.
So dann wieder, sorry, ein weiteres Mal?
SPEAKER 25: Es wäre 0 sein.
Yeah, cool.
Und dann haben wir 0 & 1 -
SPEAKER 25: [unverständlich]
ALI: Ja.
So können Sie immer tauschen sie in -
Dann, wenn Sie haben 0 und 0?
SPEAKER 4: 1?
0?
ROB: Es ist also 0.
Es ist nicht so, dass beide Zahlen gleich sein müssen.
Es ist, dass beide Zahlen 1 sein müssen.
ALI: So haben beide um wahr zu sein für die es auf true.
Also das ist 0.
Und dann haben Sie 1% 1, was ist?
ROB: Diese sind ziemlich gute Zahlen.
Sie haben alle möglichen -
ALI: Gute Arbeit, wow.
Okay, cool.
So macht das Sinn für alle?
>> ROB: So, jetzt werden wir tun |.
Und das wird sehr ähnlich sein, aber jetzt anstelle von x und y zu müssen
1 sein, damit es zu einem zu bewerten, jetzt ist es nur x oder
y muss 1 sein.
ALI: So 1 | 0 ausgewertet -
CLASS: 1.
ALI: Cool.
0 | 1 ausgewertet -
CLASS: 1.
ALI: Cool, und dann 0 | 0 -
CLASS: 0.
ALI: Ja, und dann 1 | 1 -
CLASS: 1.
ALI: Cool.
Also das ist, wie zwei bitweisen Operatoren.
Awesome.
ROB: So, jetzt werden wir ^ tun.
ALI: Sollen wir alle von ihnen?
ROB: Ja, weil ich denke, dass wir es zu benutzen -
mit sie alle.
ALI: Okay.
So -
ROB: Ich denke, wir brauchen nicht zu.
ALI: So ^ Werke, dass du genau eine wahre und eine falsche haben.
^ Bedeutet, exklusive OR.
So jetzt ist es nicht -
wenn x und y beide 1 sind, ist es jetzt falsch.
Das ist die Differenz zwischen ^ und | ist, dass OR, man haben kann, wenn x
wahr oder y wahr ist, dann sind wir gut.
Nein, sagt ^ wenn x wahr ist, y muss falsch sein, oder aber es ist nicht wahr.
Haben Sie eine Frage?
>> SPEAKER 26: [unverständlich]
ALI: Ja.
Es ist eine Art ähnlich.
ROB: Ja, also, wenn Sie zu diesem Low-Level-Zeug, das sind
die Arten von Operationen, die Sie zu tun haben.
Auf Hardware-Ebene, werden Sie nur mit Bits umzugehen.
Sie müssen nicht mit Zahlen umgehen.
ALI: Okay, für ^, oder wenn Sie 1 haben ^ 0, was sollte, dass zu beurteilen?
CLASS: 1.
ALI: Cool.
Wenn Sie
0 ^ 1? CLASS: 1.
ALI: Cool.
0 ^ 0?
Cool.
Und dann 1 ^ 1?
CLASS: 0.
ALI: Cool, awesome.
Der nächste -
Rob: Ich denke, das sind alles, was wir zu tun haben.
Wir werden nur nicht diese.
ALI: Das einzige Mal, dass wir zu tun haben, werden -
ROB: Oh, das wird für das letzte Problem sein.
SPEAKER 27: Warten Sie noch einmal?
ALI: Sorry, was war Ihre Frage?
>> SPEAKER 27: Können Sie erklären, dass wieder einmal?
Das ^?
SPEAKER 27: Exclus - yeah.
ALI: Also, was das exklusive ODER bedeutet, dass es hat ausschließlich
eine wahre und eine falsche, so ein 1 und eine 0, verglichen mit OR, können Sie -
einer von ihnen hat, um wahr zu sein, oder beide von ihnen wahr sein kann, denn es
auf true zu bewerten.
SPEAKER 27: So 0 und 0 wäre falsch.
ALI: Ja.
Aber wenn man 1 |
1, das wäre zu true ausgewertet.
Aber wenn man ein ^ 1 haben, wie wir, wertet das auf false.
Weil es nicht nur ein wahr ist.
ROB: Und das kann oder nicht hilfreich sein, aber beachten Sie, dass die ^ ist
gleich nur unter der |
minus &.
Und man kann tatsächlich daran, auf diese Weise zu denken.
^ Ist nur Verknüpfung alles zusammen, aber den Abschluss eines der Bits, wo
beide waren wahr.
So & kehrt alles, wo beide wahr.
| Kehrt alles, wo ein oder beide wahr sind.
So Subtraktion, dass aus dem | gibt Ihnen die ^.
ALI: Noch Fragen?
Das war eine Menge von Informationen.
Jeder gut?
>> ROB: Wir können in den nächsten diejenigen für das nächste Problem gehen, Schrägstrich
Wie spät ist es?
Sie brauchen das nicht bis zum nächsten Problem.
ALI: Ich dachte, es war dies ein.
ROB: Es ist nicht.
ALI: Sind Sie sicher?
ROB: Ja, ich bin positiv.
ALI: Warum gehen wir nicht tun beginnen das nächste Problem?
Das Problem ist, wieder, um sie von Kleinbuchstaben in Großbuchstaben ändern, und dies
Zeit zum bitweisen Operatoren verwenden.
ROB: So werden wir -
Beginnen wir mit der Binärdarstellung von 'A', Kapital 'A',
das ist 65 Jahre.
So in binary -
so 'A' = 65, die in binärer = -
Ich bin zu verwirren hinauf die Anzahl der 0s -, dass.
ALI: So macht das Sinn für alle?
So, 1, keine 2s, kein 4s, kein 8s, nein -
keine 16s, 32s nicht, und dann ein 64.
ROB: Ja, ich denke, das ist einer zuviel 0s.
ALI: Sorry.
>> ROB: Okay, so haben wir die 64 gesetzt, und wir haben die 1 Satz, und kombiniert diese
zusammen, so erhalten wir 65.
ALI: Cool Bohnen?
ROB: So, jetzt, Kleinbuchstaben 'a'-
bemerken, 97 -
was ist der Unterschied zwischen 97 und 65?
SPEAKER 28: 32.
ROB: Yeah.
So ist es 32 ist, das ist seine eigene bit, so, das wird 110.001 sein.
Und das wird für alle möglichen Zeichen wahr.
Also, wenn wir von 'D', das werde 68 sein wird denken, das geht zu 1.000.011 sein.
Und dann Kleinbuchstaben 'd' wird 68 plus 32, die 100 ist, das ist sein
werde die gleiche Sache, dass dies sein, das Umdrehen der
32 wieder, so 1.100.011.
So ist der Unterschied zwischen einem Groß-und Kleinbuchstaben wird das Umdrehen
dass 32-Bit-Position.
SPEAKER 29: Ist es nicht 1000100?
ROB: Warte, es ist 100 -
etwas, was ich falsch gemacht habe.
Das war nicht wahr.
Ich dachte, dass es ein Unterschied von 3 war, so dann habe ich einfach stecken
der binäre 3 am Ende.
Dies sollte richtig sein.
ALI: Danke.
Gute für den Hinweis.
Das war scharf.
Alles klar, ist, dass den Menschen klar?
>> ROB: Der Unterschied zwischen der Groß-und Kleinschreibung Version
immer nur gehen zu 32 sein, und so ist es immer ein einzelnes Bit sein
die sich bei geklappt werden, um zwischen den beiden zu ändern.
ALI: Also in diesem Fall, zu wissen, den Unterschied zwischen der Hauptstadt A und
die Kleinbuchstaben a ist eine gute Sache.
Nicht in Ihrem Code, aber konzeptionell zumindest ist es gut.
So you guys können weiter gehen und Code, in Spaces jetzt.
Oder sollten wir nur darüber reden?
ROB: Wir können nur darüber reden.
Ich weiß nicht.
You guys ausprobieren können.
Diskussion unter sich ein bisschen.
Wir geben Ihnen eine Chance, es zu codieren.
[Zwischenschaltung VOICES]
ALI: - ist cool
SPEAKER 30: Das ist wie Hacker-Komödie.
ALI: Ja, wir nur sagen, die Nachrichten, durchläuft es.
>> Rob: Und wir sind wieder da.
ALI: Das ist irgendwie seltsam.
Ich fühle mich wie wir eine CS50 Nachrichtensender haben sollte und wir konnten
tatsächlich so sitzen.
ROB: Hacker News.
ALI: Hacker News 50.
ALI: Fühlen Sie sich frei, Fragen zu stellen, wenn Sie verwirrt sind.
ROB: Ist jemand stecken?
ALI: Ja, das ist eine gute Sache.
ALI: Wait, sind Sie in Ihrem Stuhl stecken?
Oh.
Ich war ein wenig besorgt.
ROB: Weil ich merkte nur, dass wir gehen zu wollen,
anderen bitweisen Operator.
Denn jetzt, lasst uns einfach konvertieren Großbuchstaben in Kleinbuchstaben.
ALI: Sorry, habe jeder bekommen diese Ankündigung?
Wir gehen von Großbuchstaben gehen in Kleinbuchstaben.
ROB: Dann werden wir diskutieren, Kleinbuchstaben gleich nach, dass Großbuchstaben.
Oh, nein.
Wir haben einen Fehler in diese, die, glaube ich, haben wir nie versucht zu laufen.
Welche ist nur, dass char c außerhalb der Schleife deklariert werden muss, weil
Der Anwendungsbereich ist in der Schleife beschränkt.
SPEAKER 32: In diesem Fall ist es falsch, eine Reihe verwenden?
ROB: Eh, Sie brauchen nicht zu.
Wenn ich Sie garantiert, dass das Kapital 'A'- oder Kleinbuchstaben' a 'minus großes' A '
war genau das ein bisschen, aber dass Sie nicht wissen, dass es 32 -
Dinge genauso gut funktionieren, wenn es die 16-Bit, wurde umgedreht wurden - oder
nein, ich denke, es wouldn't -
oder die 64-Bit wurden umgedreht, vielleicht.
Aber Sie sollten nicht brauchen, um 32 zu verwenden.
Sie könnten stattdessen Kleinbuchstaben 'a' minus Kapital 'A'.
>> SPEAKER 32: Okay.
Was Sie tun können, wenn Sie wie Sie zu viel Schreibgefühl ist, können Sie es definieren
an der Spitze.
So können Sie sicher sein, wie, int Differenz = Kleinbuchstaben 'a' minus Kapital 'A'. Und
dann kannst du Differenz statt geben.
Das ist gültig.
Aber nur mit der Nummer 32 ist eine Art -
SPEAKER 33: Auch wenn es aufgrund der Tatsache, dass es die 32-Bit ist es?
ALI: Ja.
ROB: Es könnte -
die einzige Garantie, die wir brauchen, um Sie machen, ist, dass die Differenz zwischen dem
Groß-und Kleinschreibung ist ein Bit.
Es sollte keine Rolle, dass es für die 32-Bit, ist umgedreht werden passiert.
Für die Zeit Überlegungen, beginnen wir gehen über diese.
Es ist okay, wenn Sie nicht abgeschlossen haben.
Machen Sie sich deswegen keine Sorgen.
ROB: Angenommen c ist ein Großbuchstabe -
haben wir nicht davon ausgehen, c ist ein Großbuchstabe.
Wir wissen, c ist ein Großbuchstabe nach dieser while-Schleife -
do-while-Schleife.
Das heißt also, es sieht so etwas wie dieses 'A'. Also, wenn wir wollen, dies zu bringen
'A' dieser 'a', was wir tun müssen?
Wie können wir also zu konvertieren und klappen Sie den bit?
ALI: Wie gehen wir drehen Sie sie?
>> ROB: So wissen wir, wollen wir die 32-Bit-Flip.
Also das tun wird 'a' minus 'A', oder wir könnten 32 schreiben, aber -
verdammt, es ist anders herum.
ALI: Okay, so Rob hier ist der Berechnung dieser Zahl, magische Zahl 32.
Also ist er herauszufinden, wo die Bit-Flip-Bereich wäre.
Und dann, was wir gebracht, wo die Fragezeichen sind?
ROB: Wie können wir drehen, dass etwas?
Im Hinblick auf die Großbuchstaben, ist es eine 0, und wir wollen eine 1 geworden.
SPEAKER 34: |.
ROB: Yeah.
Also das ist uns zu sagen, wir nehmen 'A'. Wir Verknüpfung mit 0 -
1000 -
und dass = das.
ALI: Ist das sinnvoll für alle?
Wir können durch sie etwas gehen nach und nach, wenn Sie wollen.
SPEAKER 35: Sind Sie [unverständlich]?
ALI: Wo ist das Minuszeichen?
ROB: Oh, du meinst hier?
ALI: Oh, yeah.
ROB: Also ich denke, das ist uns.
Wir könnten sagen, 32, und jetzt sind wir nur mit bitweisen Operatoren.
ALI: Wir mögen keine magischen Zahlen.
Wir gehen nicht zu tun.
Auch ich denke, wir sollten einfach einen bitweisen Operator -
SPEAKER 36: Wenn Sie ein ^ A zu verwenden, erhalten Sie 32?
SPEAKER 37: Ja, ich denke -
ROB: Yeah man so will.
ALI: Dies ist, wie Sie es für den Gang getan haben
aus der Kapitalkonsolidierung in Kleinbuchstaben.
>> Jetzt kann mir jemand sagen, warum Rob und ich änderte die Eingabeaufforderung und wie gingen wir
von Groß-Kleinschreibung, statt Kleinbuchstaben um
Großbuchstaben wie früher?
Hat jemand irgendwelche Ideen, warum das sein könnte schwieriger?
ROB: So würden wir tun -
ALI: Yeah, go ahead.
SPEAKER 38: Der Operator | war nur wirklich gut für das Hinzufügen.
ALI: Ja, genau.
ROB: Also, was wir wollen, in der Kleinbuchstaben tun, um bei Großbuchstaben ist,
wandeln diese 'a'-
so wollen wir in einigen Zahlen hier setzen und verwenden einige Betreiber, so dass es
aus dem Kapital A. Wir sind immer noch wahrscheinlich mit 32 irgendwie, aber jetzt, wie tun wir
bekomme zu kommen, um das?
So c -
oh, ich will noch, dass zu -
ALI: So jetzt, wenn wir von Klein-Umwandlung wieder in Großbuchstaben, dann werden wir
tun ^ Betrieb, wie euch gesagt.
ROB: Es gibt auch andere Möglichkeiten, wie Sie Dinge tun kann.
Ein großer Teil der bitweisen Operatoren am Ende als sehr leicht definierbaren in Bezug
von anderen Bit-Operatoren.
So wollte ich nicht ^ oder alle, aber ^ funktionierte perfekt in Ordnung.
>> ALI: Okay, so werden wir in der letzten Problem, das die grundlegenden ist zu gehen -
das letzte Problem ist, etwas in binäre umzuwandeln.
So, zum Beispiel, haben Sie 50, und dann konvertieren Sie sie in
binär, was 110.010 ist.
Und ich denke, you guys alle kennen binary aus der Vorlesung.
Und Sie haben auch sollen nicht alle führenden 0s hineinsteckt.
ROB: Sie können diesen Teil jetzt ignorieren.
Der erste Durchlauf, können Sie es tun, dass es führende 0s.
Und dann können wir ändern, dass keinen führenden 0s haben, wenn wir Zeit haben.
ALI: Also keine Sorgen machen.
Versuchen Sie einfach, in binärer bekommen.
Ein guter Ort, um zu starten wäre -
ROB: Wir müssen für eine ganze Zahl zu fragen.
ALI: Oh ja, das ist ein guter.
Wir können damit anfangen.
So können Sie die Eingabeaufforderung.
Also anstatt eines Zeichens, jetzt sind wir mit Zahlen zu tun haben.
Cool?
>> ROB: Und jetzt, was ist unser do-while-Bedingung sein wird?
Es ist für eine nicht-negative ganze Zahl fragen.
ALI: Wann müssen wir halten den Benutzer zur Eingabe etwas anderes wollen?
Wenn sie kleiner als 0 ist.
ALI: Richtig.
ROB: Während i kleiner als 0 ist.
ALI: Jetzt wollen wir es zu konvertieren.
Habt ihr irgendwelche Ideen, was zu tun ist?
Alle Ahnungen?
Yeah.
SPEAKER 39: Haben wir es zu konvertieren, oder können wir einfach ausdrucken einige 0s und 1s
das wäre die richtige Zahl sein?
Können Sie eine for-Schleife und zählen durch Potenzen von 2?
ROB: Ja.
Sie brauchen nicht zu i seine Binär umrechnen -
die binäre Repräsentation des i nicht Innenseite i passen.
Sie müssen nur die binäre Darstellung von i zu drucken.
ALI: Mit anderen Worten, Sie brauchen nicht durch Zweierpotenzen gehen.
ROB: Weil ich bereits als Binärdateien gespeichert werden, so dass Sie nicht brauchen, um
wandeln es in binär.
Knapp über seinen binären gehen und ausdrucken.
Und Sie gehen zu müssen, bitweise zu verwenden, da Sie sehen möchten
die tatsächlichen Bits.
Sie brauchen nicht zu bitweise benutzen, aber bitte tun.
Und das ist eigentlich -
Sie können nur tun Zweierpotenzen durch Multiplikation mit 2.
Wir werden über eine der letzten beiden binären bitweisen Operatoren gehen,
was ist dies ein.
Also, wenn Sie nehmen -
>> ALI: Können Sie durch beide von ihnen gehen?
ROB: Yeah.
Also lasst uns mit 9 gehen.
So 9 Linksverschiebung 1 -
was Verschiebung nach links Mittel bewegen Sie einfach alle Bits auf der linken Seite und legen Sie eine 0 ein.
So dass wir Verschieben aller Bits des 9 nach links ein
Position, die uns -
So bemerken wir verschoben haben alles verlassen ein, und er fügte einen 0 auf der
rechte Seite.
Wenn wir verschoben verlassen hatte durch zwei, würden wir verschieben alles durch zwei links,
und legen Sie zwei 0s, um die Lücken zu füllen.
Question?
ALI: Also Verschiebung nach rechts macht eine ähnliche Sache.
Wenn Sie 9 rechte Shift-1 haben dann sind Sie gerade bewegt alles an
das Recht, verlieren Sie eine Ziffer, so 100 statt.
ROB: Also es ist in Ordnung, dass Sie verlieren das Bit, das an alle zufällig
der Weg nach rechts.
Es gibt verschiedene Arten von Recht Verschiebungen, aber im Grunde können Sie denken
rechts nur Teilung verschieben um 2.
Und Sie können der Linksverschiebung als Multiplikation mit 2 denken.
Also, wenn Sie umgewandelt dies -
wenn Sie umgewandelt 9 Schicht 1, die gleich 10010 ist, wenn Sie ging eigentlich
durch die binäre und herausgefunden, was das war, wäre es nur 18 sein.
Wir haben gerade mit 2 multiplizieren.
1001 Linksverschiebung 2 wird 36 sein.
Wir sind von 4 zu multiplizieren.
Okay, cool, das ist also ein handliches bitweisen Operator für diese ein.
Weitere Verwirrung?
Wollt ihr Jungs, es auszuprobieren?
Oder wir können gerade nach rechts in springen und starten Sie es?
ROB: Wir sollten wahrscheinlich Recht in. springen
ALI: Ja, Okay.
Rob: Und gehen durch sie zusammen.
>> ALI: Nun, ich werde einfach hinein gehen.
So wie er am Anfang gesagt, wir gehen nur bis Bit gehen, indem Bit.
So werden wir eine Schleife benötigen.
Hat jemand eine Idee, die beste Art der Schleife durch diese gehen?
Wir haben while-Schleifen, do-while-Schleifen, For-Schleifen.
SPEAKER 40: Do-while-Schleife?
ROB: Also denken Sie daran, was ich vor etwa sagte, sind wir nur mit do-while-
Schleifen, um Benutzereingaben.
Du wirst nie so ziemlich immer nutzen sie für irgendetwas anderes.
ALI: Das Problem mit do-while-Schleifen ist es etwas tut, bevor es für überprüft
die Bedingung.
So könnte es etwas schlecht -
möchten, verletzt -
etwas tun, was nicht möglich ist.
Sie wollen also, zuerst zu prüfen.
ROB: Es gibt eine Menge von Fällen, wo Sie do-while-Schleifen, aber die Menschen
erwarte nicht, dass Sie sie verwenden, es sei denn Benutzereingaben ist.
So haben wir nutzten unsere do-while-Schleife i erhalten.
Wie oft wird unsere Schleife gehen auf Loopback wollen?
Wir wollen Schleife über jedes der Bits von i.
Wie viele Bits sind in i?
SPEAKER 41: 32.
ALI: Ja.
ROB: Es gibt also 32 Bits.
Wir wollen nicht 32 sagen.
Wir hingegen wollen sizeof sagen -
die, Sie haben gesehen, dass in der Klasse noch?
ALI: Nope.
ROB: Warum ist es zu sagen, dass verwenden -
sizeof (int) mal 8 -
ALI: Also, das ist sizeof -
>> SPEAKER 42: [unverständlich]
ALI: Interessant.
So ist sizeof eine eingebaute C-Funktion, wo es nur sagt Ihnen der
Anzahl der Bits in -
ROB: Bytes.
ALI: Bytes, sorry -
die Anzahl von Bytes, die eine Variable, um einen Wert zu speichern.
So denke ich, ging er in der Klasse, dann ist ein int 4 Byte vielleicht.
Cool?
ROB: Aber Sie sollten nicht zu wissen, dass ein int 4 Byte.
Sie sollten in der Lage sein zu sagen -
Sie verwenden sollten, sizeof (int) auf 4 Byte zu bekommen.
Und das ist wirklich wichtig für einige Dinge.
Ein int vielleicht nicht 4 Byte sein.
Auf einem anderen Computer könnte ein int 8 Bytes sein.
So wird Ihr Programm nicht auf dem Computer arbeiten, weil Sie hartcodierte 32
Bits, wenn auf dem Computer geschieht mit 64 Bits sein.
ALI: So haben Sie die Gesamtzahl der Bits, die Sie wollen, dass es umzukehren.
ROB: Und der Differenz zwischen einem Byte und einem Bit ist, dass es
sind 8 Bits in einem Byte.
So sizeof (int) liefert 4 Byte, dann müssen wir, dass multiplizieren
von 8 bis 32 erhalten Bits.
>> ALI: Okay, damit wir wissen, die maximale und wir wissen, dass wir aus gehen wollen -
Wir wollen durch alle von ihnen gehen.
So wollen wir von 0 bis numBits gehen.
So weiß jemand, wie man die Schleife für zu schreiben?
Anyone?
SPEAKER 43: [unverständlich]
ALI: Sie wollen also die Anzahl i von der nullten Bit zu durchqueren, um die
erste Bit, das zweite Bit, das dritte Bit, den ganzen Weg zu numBits.
Die maximale Anzahl von Bits, die Sie bekommen können.
ROB: Was ist der gemeinsame Schleife benutzen wir, was wir zu etwas x-mal tun?
ALI: Für.
Perfect.
So haben wir für.
Und dann erstellen wir einen Iterator, der nicht geht, i sein.
ROB: j.
ALI: J = 0 ist.
Also werden wir bei 0 beginnen.
Und dann werden wir den Zustand, um sicherzustellen, haben, während Sie
durchläuft es jedes einzelne Mal -
[Zwischenschaltung VOICES]
ROB: j.
ALI: j kleiner als numBits.
So wollen wir nicht um den tatsächlichen entspricht einer tun, weil sie numBits sind
insgesamt, und wir beginnen bei 0.
Daher freuen wir uns tatsächlich gehen zu müssen -
SPEAKER 44: Oh.
ALI: Die Indizes nicht an numBits minus 1 zu beenden.
ROB: Wir bezeichnen die Bits 0 bis 31, wir nicht beschriften 1 bis 32.
ALI: Und dann werden wir jedes Mal um eins erhöht, weil wir es wollen
überprüfen jeden einzelnen.
So gehen wir j + +.
>> SPEAKER 45: Warum tust du das?
SPEAKER 46: Warum gehst du durch jeden etwas?
ROB: So wollen wir durch jedes Bit zu gehen und -
So sagen wir, wir haben eine Nummer.
ALI: 68.
ROB: Wir können 68 verwenden.
So die binäre geht um 100.100 sein.
Das ist also innerhalb von i und wir wollen über jedes dieser Bits gehen.
Ist es eine 1?
Drucken 1.
Ist es ein 0?
Drucken 0.
Dann gehen wir auf die nächste Bit.
Ist es eine 1?
Drucken 1.
Ist ein 0?
Drucken 0.
ALI: Cool, okay.
Jetzt sind wir an der richtigen Index für, wo das Bit ist.
Wie können wir überprüfen, dass bestimmte ein?
Lassen Sie uns sagen, dass wir bei j = 0, so wollen wir die 0 Index des Bits zu überprüfen.
Also, in diesem Fall diese.
>> So jetzt, wie wissen wir über Check - oh, wäre es dieses.
ROB: Yeah.
ALI: Sorry.
Wie würden wir über die Überprüfung, dass ein zu gehen, in einem gewissen Sinn?
Wie würden wir prüfen, ob es sich um eine 0 oder eine 1 ist?
Nun let's -
CLASS: And 1?
ALI: Und?
Yeah.
ROB: So sagen wir, wir haben bereits ein.
Dann ist dies &, wird diese zurück, ob es sich um eine 1 oder eine 0 war.
ALI: So können wir nach unten gehen.
Und wir können tun, was euch gesagt, tun das & Funktion.
ROB: int -
wie will ich das zu sagen -
Isone = i.
Und für das erste Bit wir zufällig an zu suchen, wir tun i & 1.
Nun, was sollen wir wollen und durch die für das zweite Bit?
SPEAKER 47: 2.
ROB: Yeah, das zweite, dass wir auf 2 sind.
ALI: Sie werden feststellen, dass die 1 hat auf der linken Seite ein bewegt.
So haben wir gelernt, keine bitweise Operatoren, um diese Funktion zu tun?
ROB: Der nächste -
ALI: Ja, richtig, genau.
Also ist es eine Verschiebung nach links.
Anstatt immer Rücksprache mit 1, werden wir es verschieben.
Und wie oft sind wir es verschieben?
Wenn wir die Überprüfung des 0. ein sind, dann werden wir es über Null bewegen.
Ja, genau.
Also links verschieben es von j.
Perfect.
Jetzt wissen wir also -
haben wir diese int davon, ob es ein, und dann -
so Rob Art von Betrug hier -
und so jetzt war er voran, und er hat nur gesagt, dass, wenn es tatsächlich ist 1,
weil 1 als wahr ausgewertet, so dass wir nicht zu sagen isf Isone gleich 1 -
also wenn Isone, dann drucken wir 1, und ansonsten wir drucken 0.
>> ROB: So hat unser Programm insgesamt einen Bug.
Nun, Fragen zu diesem ersten.
SPEAKER 48: Kannst du jemals von Isone im vier-Betrieb teil und
dann haben sie verlagern sich als der letzte Teil?
So Isone gleich 1 und dann -
ROB: Ja, können Sie.
Wir können tatsächlich zeigen, dass, wenn wir den Fehler, dass ich jetzt bin fix
besprechen mit Ihnen allen.
Beachten Sie die Ordnung, die wir über die Dinge gehst.
Angesichts dieser Binärdarstellung, sind wir mit der nullten Bit ab.
Wenn es eine 0 ist, dann drucken wir -
gut, es ist eine 0, so drucken wir 0.
Dann gehen wir zum zweiten Bit gehen.
Es ist eine 0, so drucken wir 0.
Dann gehen wir zu dem dritten Bit gehen.
Es ist eine 1, so drucken wir ein.
ALI: Es ist also rückwärts gehen.
So wie Sie Leute vorschlagen, dass wir das zu beheben und den anderen Weg gehen?
SPEAKER 49: [unverständlich]
ROB: Yeah.
Anstatt also von 0 bis numBits, werden wir von numBits Bits auf 0 gehen.
ALI: So [unverständlich]
immer den anderen Weg gehen.
ROB: NumBits minus 1, denn das ist die letzte nubmer -
ALI: Weil es 0 bis 31 geht.
Und dann werden wir immer darauf achten, dass sie größer als 0 ist, so dass Sie nicht gehen
zu weit nach rechts.
Und dann wirst du immer um 1 abziehen, um auf der rechten Seite gehen.
>> ROB: So, jetzt haben wir eine Kehrschleife, und die Zahl ist wieder in Druck
in der richtigen Art und Weise.
SPEAKER 50: Haben Sie nicht die Verschiebung Sache zu ändern?
ALI: Also nein.
ROB: Wir tun exakt das gleiche Operationen, außer jetzt
in der umgekehrten Reihenfolge.
So anstatt die Verschiebung um numBits minus 1 zu bekommen, was diese
Bit ist, anstatt das zu tun, dass die letzten, wir tun es einfach zuerst.
Durch die Umkehrung dieses hier, kehren wir die Reihenfolge der alles
dies geschieht im Inneren.
Aber wir wollen nicht zu ändern, was passiert im Inneren überhaupt.
ALI: Macht das Sinn?
Verarbeitung?
Okay, nicht so jemand noch andere konzeptionelle Fragen?
ALI: Bevor wir in seinem Punkt gehen die -
ALI: All right, gut gehen.
Rob: Anstelle der Verwendung von j unseren sein -
anstelle von j immer verschieben, wie eine Verschiebung nach links j, denke ich, was
Sie sagen, ist wie zu j nutzen sich.
Also für j -
Ich denke, das ist die harte - j = 1 << 31.
Ist das, was ich will?
Ich denke, es ist << 31.
j> = 1 ist.
j >>, >> Isone, i & j -
so jetzt anstelle von -
ALI: Du bist ständig in Bewegung j anstatt ein
index um es zu überprüfen.
Es ist nicht so schlimm.
Wir verwenden eine ähnliche Art von Logik.
Also, wenn Sie gehen zurück -
oh, aber es geht, es zu verlieren.
Okay, du bist gerade dabei, es wieder zu geben.
Wenn Sie bemerken, dass wir 1 << j Höhe der Zeit sind, und wir waren
Inkrementieren j jedes Mal um ein Inkrement, aber diesmal anstelle
sie tun das Inkrement j an der Spitze innerhalb der for-Schleife.
Anstatt also immer in Bewegung it down -
ROB: Die erste Iteration der for-Schleife, haben wir j ist 10000.
Die nächste Iteration der for-Schleife ist 01000.
Die nächste Iteration ist, dass.
Und die 1 wird einfach weiter ausbreiten, bis wir das sehr getroffen
Ende, wo es jetzt ist das.
Der nächste wird der 1 würde abgestoßen werden, und j nicht mehr größer
als oder gleich 1 ist.
Ich könnte auch genommen größer als 0, gleiche Unterschied.
Und dann das ist es.
Haben Sie Fragen?
Yeah.
>> SPEAKER 51: [unverständlich]
ROB: Also das ist das gleiche wie -
Sie haben j + = 3 gesehen?
Das ist also das gleiche wie j = j + 3?
Sie können, dass für nahezu jeden Betreiber auch in C schreiben So j >> = 3
gleich j = j >> 3.
Also das funktioniert auch mit bitweisen Operatoren.
Und ich sollte nicht 31 hierher gebracht haben.
1 - Ich sollte numBits gesetzt haben.
ALI: Yay, keine magischen Zahlen.
Okay, es ist 04.00 aber so, wenn euch zu gehen - aber ist das sinnvoll?
Habt ihr noch Fragen?
ROB: Ich war auch werde, dass zu werfen, wenn wir wollten -
hat er ternäre Operator diskutiert überhaupt?
ALI: Nein
Es ist okay.
ROB: So könnte man in sie für die nächste Zeit aussehen.
ALI: Okay, wirklich?
Jetzt bist du nur Angeberei.
ROB: Nein, jetzt es ist -
das ist, was bringt die Menschen interessiert, und jetzt werden sie Blick hinein zu gehen.
So, jetzt nicht, dass die gleiche Sache, in einem Schritt.
So überprüfen Sie zunächst, i & j 1?
Ist es wahr?
Wenn dem so ist, drucken Sie eine 1, sonst, drucken Sie eine 0.
ALI: Aber tut es der andere Weg ist völlig in Ordnung, als gut.
Es hat die gleiche Logik.
So ist es nicht wie man ist -
ROB: An dieser Stelle können wir diejenigen loswerden geschweiften Klammern, weil es nur
eine einzeilige for-Schleife.
ALI: Okay, so macht das Sinn?
Das war eine Art Sprung.
Aber es war nur eine Art von Syntax, um so mehr.
>> Cool?
Noch Fragen?
ROB: All right.
ALI: All right, cool.
Danke fürs Kommen Abschnitt.