DOUG LLYOYD: So hexadezimale Zahlen, als ob wir ein anderes Basenzahl
Schema richtig?
Nun, die meisten westlichen Kulturen, wie Sie wahrscheinlich nicht vertraut sind,
verwenden Sie die Dezimalzahl system-- Basis 10, um numerische Daten zu repräsentieren.
Wir haben die Ziffern 0, 1, 2, 3, 5, 6, 7,8,9.
Und wenn wir brauchen, um zu vertreten Werte höher als neun,
wir können diese Ziffern zu kombinieren mit dem Begriff der Stellenwert.
Also für 10, haben wir eine 1 Ziffer gefolgt von einem 0-stellige
und wir intuitiv verstehen dass das, was wir tun,
es wir Multiplikation den ersten 1 bis 10,
und dann Zugabe 0 für eine Gesamtzahl von 10.
Computer etwas ziemlich zu tun ähnlich, wie Sie wahrscheinlich vertraut,
mit dem binären system-- Basis 2.
Der Unterschied wobei daß es nur 2 Ziffern
um mit-- 0 und 1 zu arbeiten.
Und so unseren Platz Werte, anstatt einem,
zehn, hundert, tausend, wie sie würde im Dezimalsystem zu sein,
sind ein, zwei, vier, acht und so weiter.
Hier ist das Ding aber, jene 0 und 1en, insbesondere
wenn wir als Informatiker und wir tun eine Menge Programmier
oder die Arbeit mit Computern, würden zu werden, sehen eine Menge von binären Zahlen.
Und die 0 und 1 in großen Ketten kann sehr schwierig zu analysieren sein.
Wir können nicht einfach bei einer Reihe von aussehen 0 und 1 und unbedingt wissen,
genau das, was es ist.
Aber es ist immer noch nützlich zu können Express-Daten auf die gleiche Weise
dass ein Computer tut.
Wir haben diese Vorstellung von der Hexadezimal-System, das ist
Basis 16 anstelle von Basis 10 oder Basis 2.
Was bedeutet, dass wir 16 Stellen um anstelle von 10 oder 2 zu arbeiten.
Und es ist eine sehr viel prägnant zum Ausdruck zu bringen
binäre Informationen auf einem Computersystem, es ist viel mehr Menschen verständlich.
So haben wir die Ziffern 0 bis 9, und dann
wir haben auch diese zusätzlichen sechs digits-- ein, b, c, d, e und f, die 10 darstellen,
unsere Vorstellung von 10, 11, 12, 13, 14 und 15 in dezimal.
Manchmal, übrigens, werden Sie auch sehen, diese A bis F als Kapital A
bis F, die der ist Weg Ich neige dazu, es zu tun.
Es ist nur mein Wunsch Stil, aber entweder ist in Ordnung,
sie beide ziemlich vertreten genau dasselbe.
>> Also, warum ist hexadezimal cool?
Warum brauchen wir, dies zu nutzen andere zusätzliche Basis?
Wir haben bereits 2 und 10, warum brauchen wir 16?
Wanne 16 eine Potenz von 2 und so jede hexadezimale Ziffer, 0 bis f,
entspricht einer einzigartigen Bestellung, oder einzigartige Anordnung
von 4 binären Ziffern, 4 Bit.
Und so in diesem Sinne, wir ausdrücken können sehr lang, komplex, Binärzahlen
hexadezimal in einem viel mehr prägnant,
ohne Informationen zu verlieren oder zu müssen, tun besonders umständlich Konvertierungen
auf diese Zahlen.
>> So, wie ich bereits sagte, Jede Hexadezimalziffer
entspricht einer einzigartigen Anordnung von 4 binären Ziffern.
Also die Binär-String 0000 entspricht Hexadezimalziffer 0.
0110 entspricht hexadezimale Ziffer 6.
Und 1111 entspricht um hexadezimale Ziffer f.
Wenn Sie suchen, diese Tabelle, vor allem
Wenn man sich die gesuchte linken Seite des Diagramms,
Sie können bereits sehen, es gibt eine Bit einer Mehrdeutigkeit Problem hier.
Dezimal 0 ist ziemlich viel, nicht von hexadezimal 0,
außer der Tatsache, dass es unter eine Spalte, die hexadezimale sagt.
>> Aber wir werden wahrscheinlich nicht immer haben diese Spalte gibt.
Im Allgemeinen, wenn wir zum Ausdruck Zahlen in Hexadezimalschreibweise
deutlich zu unterscheiden sie vor dezimal,
wir voran sie in der Regel mit dem Präfix 0x.
0x bedeutet nichts in der Realität, es ist nur ein Anhaltspunkt für uns als Menschen
dass das, was wir sind dabei, um zu sehen, oder etwa um das Parsen zu starten,
eine Hexadezimalzahl ist.
Offensichtlich bei den höheren Ziffern a, b, c, d und f, die zu 10-15 entsprechen
es ist ziemlich eindeutig, das ist das ist eine hexadezimale Zahl.
Und in der Tat, jede hexadezimale Zahl, Buchstaben in sich hat,
ist wahrscheinlich ziemlich offensichtlich, als Hexadezimalzahl.
Aber, noch für den Aus Gründen der Klarheit ist es
immer eine gute Idee, voranstellen, jedesmal wenn Sie
beziehen sich auf einen einstelligen als hexadezimale Nummer durch Voranstellen eines 0x.
>> So, binär, wie wir sagte, hat Platz Werte.
Es gibt die diejenigen Ort, ein Ort, zu zweit, ein Ort, Vieren und eine Achter Platz.
Und Nachkommastellen hat auch Platz Werte, die Einer, Zehner, Hunderte und Tausende
dass wir alle erinnern kann von der Grundschule.
Und hexadezimale keine Ausnahme ist hier, wirklich.
Es hat auch Platz Werte, sondern des Seins Potenzen von 2 oder Vielfaches von 10,
sie sind Kräfte des 16.
>> So sehen wir eine Reihe wie dieses wir ziemlich deutlich weiß, es ist 397, oder?
Nun, wenn wir sehen, eine Zahl wie diese, wir wissen, das ist nicht 397 mehr.
Dies ist die hexadezimale Nummer 3-9 die Uhr.
Es ist nicht 397, es bedeutet, etwas anderes,
weil wir mit Potenzen von 16, da alle von unserem Platz Werte anstelle der Zuständigkeiten
10.
In der Tat, hier wäre der Ort Werte werden an der Einerstelle der sixteens Ort,
und die zweihundertfünfzig Sechsen Ort, , um unsere Vorstellung von einem Einsen entsprechen
Ort, Zehnerstelle, und ein Hundert Ort, wenn die Zahl war 397.
Aber da es 0x 397, haben wir ein Ort, diejenigen, sixteens Ort,
und eine zweihundertfünfzig Sechsen Ort.
Oder eine 16 an die 0 Ort, der 1 ist.
A 16 mit dem ersten Strom Stelle 16.
A 16 quadriert Ort, 256, und usw., und so weiter, und so weiter.
So ist diese Zahl wirklich 3 mal 16 squared plus 9 mal 16, plus 7.
Ich habe nicht die Mathematik hier zu tun, aber es ist nicht 397, es ist viel, viel größer als die.
>> Ähnlich könnte man 0x ADC, auch das ist ein mal 16 Quadrat.
Oder wenn wir übersetzen, dass unsere Vorstellung von Dezimalzahlen, das ist 10 Mal
16 quadriert plus d Zeiten 16 oder plus 13 mal 16.
Und keine Sorge, wenn Sie nicht gespeichert haben daß d 13, oder so etwas,
es gibt nicht zu viele dieser Brief Ziffern
und es wird sich intuitive ziemlich schnell.
Dies ist so, einmal 10 mal 16 quadriert, plus 13 mal 16, plus 12 mal 1.
So 0x adc.
>> Also, wie gesagt, jede Gruppe von 4 binären Ziffern
entspricht einem einzelnen hexadezimale Ziffer,
und so ist es eigentlich wirklich leicht hin und her wechseln
zwischen hex und binär.
Wenn Sie diese lange Reihe von haben binären Ziffern, alles, was Sie tun müssen,
wird beginnen direkt Gruppierung als Gruppen von 4 verlassen.
Und dann haben Sie konsolidieren sie in hexadezimale Zahlen,
die Anzahl der stark einschränken Ziffern, die Sie geistig zu verarbeiten.
Anstelle von 32 0 und 1en, wie wir in einem zweiten zu sehen,
Sie könnten in der Lage, es zu bekommen unten sein nur 8 hexadezimalen Ziffern, eine Menge
prägnanter.
>> Die Diagramme ein paar Dias Rücken wird Ihnen helfen, herauszufinden, diese Zuordnung,
obwohl, du wirst wieder merken es ziemlich schnell.
Wir werden durch ein Beispiel jetzt gehen.
Also, wenn wir haben eine Reihe wie diese, das wirklich große binäre Zahl,
oder was zu sein scheint eine große binäre Zahl.
Und der Grund, warum ich sagen, dass, es ist nur SO- es ist ein Ungetüm, nicht wahr?
Es gibt so viele 0 und 1 ist da.
Aber wir wahrscheinlich nicht wirklich ein Gefühl dafür, was
der Betrag dieser Zahl wirklich ist.
Wir haben keine Ahnung haben, was es würde in eine Dezimalzahl entspricht.
Und in der Tat werden wir nicht einmal sehen, was es entspricht in Dezimal jetzt.
Wir könnten in der Lage zu sein, drücken dies in einer Weise,
uns einige weitere Informationen geben würde, über, wie groß diese Zahl ist.
>> Lassen Sie uns also in diesem Umwandlungsprozess zu gehen.
Das erste, was wir brauchen, zu tun ist, wir wollen Gruppe
diese Ziffern aus in Gruppen von 4, ausgehend von der rechten
und arbeitet nach links.
Es passieren zu 32 Ziffern lang sein hier, das heißt, wir haben
ein schönes, sauberes Pause von 8 Gruppen von 4.
Denken Sie daran, dass jede Gruppe von 4 Sie hier, eindeutig entspricht
auf eine hexadezimale Ziffer.
So sehen wir uns wieder mit dem Bau unserer Anzahl von rechts und die Arbeit überlassen.
Nun, was ist 1101?
Nun, wir haben die Mathematik in unserem Kopf, haben wir 1 in der Achter Platz, eine 1
im Vieren Ort, eine 0 in den Zweien Ort und eine 1 in der Einerstelle.
Das ist 8 plus 4 plus 1, die wir als 13 kennen.
Aber wären wir wahrscheinlich nicht schreiben 13 heraus, weil wir mit hexadezimalen arbeiten.
Wir müssen es in die hexadezimale umwandeln Äquivalent von 13, worin D.
>> 0011, gut, das ist eine 0 in die Achter Platz, eine 0 in fours Ort,
a 1 in der Zweier-Platz, und eine 1 in der Einerstelle.
Das ist 3.
Ich meine, zu halten, dies zu tun wieder, wir haben hier 9.
Und dann 11, aber das ist b, Rückruf.
2, 10-- oder a-- 6, und 4.
Und so, dass sehr große Zeichenfolge von 0 und 1en des oberen
wird prägnanter zum Ausdruck in Hexadezimaldarstellung als 0x 46a2b93d.
>> Na ja, OK, wir haben ein neues gelernt coole Fähigkeiten, was ist der Sinn?
Wir könnten nicht diese alle Zeit, wie wir werden bald sehen,
Wir verwenden hexadezimale ganz eine Menge, wie Programmierer.
Nicht unbedingt für die Zweck Hören Mathematik mit ihm,
sondern weil eine Menge Zeit Speicheradressen in unserem System
sind hexadezimal dargestellt.
Es ist eine wirklich knappe Weise, auszudrücken, sonst mühsam Binärzahlen.
Und so, hier können Sie nicht-- Sie wahrscheinlich
nicht irgendwelche Mathematik zu tun mit ihm, sind Sie nicht
sein wird, multipliziert Hexadezimalzahlen zusammen,
oder irgendetwas komisch wie das zu tun.
Aber es ist eine nützliche Fähigkeit zu haben, so können Sie äußern und verstehen können,
Speicheradressen und andere Wegen der Verwendung von Daten in C.
>> Ich bin Doug Lloyd, ist dies CS50.