Hallo und herzlich willkommen. Lassen Sie uns über bitweise Operatoren sprechen.
Wir haben Ihnen in der vorherigen Vorlesung einen kleinen Einblick gegeben, als wir über Zuweisungsoperatoren gesprochen haben,
da Zuweisungsoperatoren alle diese zusammengesetzten Zuweisungen haben, mit denen Sie eine
Operation wie eine Addition ausführen und dann auch zuweisen können.
Mit diesen Typoperatoren können Sie dasselbe tun.
Aber lassen Sie uns näher darauf eingehen und Ihnen genau sagen, was sie sind.
C bietet also bitweise logische
Operatoren und Shift-Operatoren. Diese Begriffe könnten völlig ahnungslos sein.
Sie sehen aus wie logische Operatoren, sind aber ganz anders. Sie führen keine booleschen
Auswertungen durch. Sie bewerten nicht wahr oder falsch.
Sie sehen aus wie das kaufmännische Und kaufmännische Und, die 2
ors, aber sie führen keine boolesche Bewertung durch.
Was sie tun, ist, dass sie mit Bits innerhalb ganzzahliger Werte arbeiten.
Und so fragen Sie sich vielleicht, warum zum Teufel würden Sie das jemals tun wollen? Nun, es wird in
den meisten Programmen nicht verwendet. Es ist eher eine fortgeschrittene Technik.
Obwohl dies eine Anfängerklasse ist. Sie sind Teil der Operatoren, und Operatoren sind ein Anfängerkonzept.
Also werde ich sie ansprechen, aber wir werden uns nicht unbedingt auf sie konzentrieren.
Ich werde Ihnen einige Beispiele geben und Ihnen zeigen, wie Sie sie verwenden können.
Aber nach diesem Vortrag werden Sie kein Experte in diesem Bereich sein.
Die Art und Weise, wie sie nützlich sind und warum Sie sie tatsächlich verwenden möchten, liegt darin, dass
Sie eine ganze Reihe von Daten speichern können.
Es gibt also bitweise Operanden namens und, kaufmännisches Und und das bitweise oder das ist
ein oder nur ein einzelner paralleler Balken.
Versuchen Sie, diese nicht erneut mit den logischen Operatoren zu verwechseln.
Logische Operatoren haben zwei davon, kaufmännisches Und kaufmännisches Und, ein und.
Die bitweisen Operatoren haben nur eine einzige. Also nur ein kaufmännisches Und oder nur ein oder.
Sie werden also testen und einzelne Bits innerhalb einer
ganzzahligen Variablen setzen. Was ist ein bisschen?
Wir wissen, dass ein bisschen eine Möglichkeit ist, Daten zu messen.
Aber ein Bit ist im Wesentlichen nur ein 0- oder 1-Wert.
Und 8 davon bilden ein Byte. Ein bisschen ist also eine 0 oder 1.
Und was Sie tun können, ist eine Ganzzahl. Denken
Sie daran, je nach dem System, das Sie ausführen, können es 8 Bytes sein.
Und so können Sie jedes Bit ein- und ausschalten.
Und wenn ich "Ein- oder Ausschalten" sage, kann ich sagen, dass sie entweder gleich 1 oder 0 sein können.
Und dann können Sie diese Bits verwenden, um Ihnen etwas zu sagen.
Sie können also viele Daten speichern, indem Bits eine Art von Daten darstellen.
Dies ist einer der Gründe, warum der Computer
Bits in 1 und 0 und Binärzahlen verwendet, um Operationen auszuführen, da Sie viele
Daten speichern können. Genau das,
was dies bedeutet, ist hier ein Beispiel. Sie können eine einzelne Ganzzahlvariable verwenden.
Auch hier ist eine Ganzzahl eine Zahl. Eine Ganzzahl steht für 4 bis
8 Byte, je nachdem, welches System Sie ausführen.
Das heißt, wenn es 4 Bytes gibt, bedeutet das, dass es 32 Bits gibt.
Es gibt 32 0s oder 1 Werte.
Sie können also all diese Bits verwenden, um etwas darzustellen.
Wenn Sie beispielsweise einzelne Zeichen einer Person speichern möchten, können Sie nur 1 Bit haben
und Ihnen sagen, ob die Person männlich oder
weiblich ist, indem Sie sagen, 1 ist gleich männlich. 0 ist gleich weiblich.
Sie können es entweder ein- oder ausschalten.
Dann können Sie 3 Bits verwenden, um
anzugeben, ob die Person Französisch, Deutsch oder Italienisch sprechen kann.
Das 1-Bit könnte also Französisch darstellen. Wenn es nicht 1 0
ist, bedeutet das, dass sie kein Französisch sprechen.
Wenn Deutsch 0 ist, bedeutet das, dass sie kein Deutsch sprechen.
Wenn es 1 ist, bedeutet das, dass sie Deutsch sprechen. Wenn Sie diese Bits ein- und
ausschalten und auf 1 setzen, können Sie viele Daten darstellen.
Sie könnten noch etwas aufzeichnen, ob das Gehalt der Person 50.000 oder mehr beträgt.
Wenn es 1 ist, ist es wahr, ja, es ist. 0 falsch.
Im Grunde haben wir hier nur spezifiziert.
Es heißt tatsächlich 4, aber wir haben tatsächlich 5 Datenbits angegeben, nur
5 davon, ob wir 32 oder 64 Bit haben
oder nicht, aber wir haben nur 5 verwendet und können darstellen,
ob eine Person weiblich oder männlich ist oder nicht , ob sie Französisch, Deutsch
oder Italienisch sprechen oder nicht alle 3 oder die eine oder andere.
Und ob sie mehr als 50.000 Dollar verdienen oder nicht.
Wir können all diese Daten in unseren Bits darstellen.
Und hier kommen die bitweisen Operatoren zum Einsatz.
Jetzt wissen wir, wie wir Bits verwenden können, um viele verschiedene
Daten zu speichern. Lassen Sie uns über diese Binärzahlen sprechen.
Wir wissen, dass eine Binärzahl nur eine Zahl ist, die Einsen und Nullen enthält.
Und deshalb ist es vorteilhaft zu verwenden. Bitoperatoren in einer Ganzzahl, die Zahl
kann beliebig lang sein.
Das Folgende sind Beispiele für Binärzahlen, nur 0s und 1s.
Sie haben also gesehen, dass 0 1 0 1 0 1 1 0 1 0 1 0.
Und denken Sie daran, dass ein Byte 8 Bit ist.
Eine Ganzzahl beträgt auf den meisten Plattformen normalerweise 4 Byte.
Es hängt von der Architektur ab, aber meistens 32 Bit.
Sie haben also 32 Werte, die Sie mit Einsen und Nullen speichern können, um sie ein- oder auszuschalten.
Binärzahlen, auch hier hat jede Binärzahl einen entsprechenden Dezimalwert. Sie
müssen also verstehen, wie Binärzahlen in Dezimalzahlen konvertiert werden.
Beispiele hier ist 1 gleich 1, 1 0 ist 2, 1 1 ist
3, dies sind einfache Umrechnungen.
Wieder haben sie normalerweise mehr Bits, 1 0 1 0 1 1 1.
Wenn Sie die Binärzahlen in eine Dezimalzahl konvertieren
möchten, möchten Sie jede Position im
Byte mit dem Bit-entsprechenden Bit anzeigen und dann die Potenz 2 verwenden.
Also multiplizieren Sie für jede Ziffer die Ziffer mit ihrem
Positionswert mit der Potenz von 2. Und dann addieren Sie das gesamte Projekt, um das Endergebnis zu erhalten.
Positionswerte und eine Binärzahl sind also die Potenzen von 2.
Die erste Position wäre also der Wert 2 0,
der mit anderen Worten 1 wäre.
Und dann wäre die zweite Position der Wert von 2 zur ersten Potenz, der 2
ist, 2 zu 2 wäre 4, 2 zu 3 wäre 8,
2 zu 4 wäre 16. Und das machst
du immer und immer wieder. Und so ist es leichter zu verstehen, wenn Sie ein schönes Beispiel sehen.
Und so haben wir hier eine Binärzahl von 0 1 1 0 1 0 0 1.
Das Dezimaläquivalent dazu ist 105.
Die Art und Weise, wie Sie konvertieren, ist, dass Sie für jedes Bit auf der
rechten Seite beginnen und mit der Potenz 2 multiplizieren, je nachdem, ob das Bit 0 1 ist.
Wenn wir also ganz rechts anfangen, haben wir 1.
Also sagen wir 1 mal 1 und wir behalten diese 1. Dann ist die nächste 1,
die zweite Position 0 mal 2 0. Dann 0 mal 4, 1
mal 8, 0 mal 16,1 mal 32, 1
mal 64 und 0 mal 28.
Und Sie addieren all diese und erhalten das Ergebnis von 105.
Das ist eine Möglichkeit zum Konvertieren. Sie können es auch von links
nach rechts konvertieren, indem Sie es mit 2 multiplizieren und dann 1 oder
0 addieren, je nachdem, was das nächste Bit ist. So können Sie beispielsweise
auch, wenn Sie von links nach rechts gehen,
mit 1 beginnen, da 0 keine Rolle spielt.
Wenn Sie also das zweite Bit von links nach rechts gehen, haben Sie 1.
Das dritte Bit, Sie haben 1 mal 2 plus 1,
also haben Sie 3.
Und wieder multiplizieren Sie mit 2, also sagen Sie 3 mal 2 plus 0, was 6 ist.
6 mal 2 plus 1, das ist 13.
13 mal 2 ist 26.
26 mal 2 ist 52
mal 2, was 104 plus 1 ist.
Also noch einmal mit 2 multiplizieren und dann 1 addieren. Ein weiteres Beispiel ist wiederum,
dass von rechts nach links normalerweise etwas einfacher ist.
Hier ist 1 0 0 1 1 1 0 0.
Und das wird in 156 konvertiert, weil Sie noch einmal 0
mal 1, 0 mal 2, 1 mal 4, 1 mal
8, 1 mal 16 usw. sagen
und dann alle addieren, was 4 8 12 16 28 plus 128 ist 156 .
Und wieder, wenn Sie von links nach rechts gehen, multiplizieren Sie mit 2 und addieren Sie 1.
Also fingen wir für 1 an. Sagen wir
1 2 4 9, 4
mal 2 plus 1, 9 mal
2 ist 18 plus 1 ist 19 mal
2, 38 plus 1 ist 39 mal 2, was
78 mal 2 ist, was 156 ist.
Dies ist also eine kurze Demonstration, wie Sie Binärdateien
in Dezimalzahlen konvertieren können. Wenn ich jetzt Dezibel in Binär
konvertiere, verwende ich normalerweise nur eine Konvertierung im
Web, wenn Sie wirklich daran interessiert sind. Aber Sie können diese Binärzahlen nehmen und dann bitweise
Operatoren ausführen. Schauen wir uns also die bitweisen Operatoren an.
Daher werden hier die bitweisen Operatoren zusammengefasst. Und wieder eine andere schöne Tabelle, die ich
online bekommen habe, aber sie sehen logischen Operatoren ähnlich. Aber auch hier verwechseln Sie sie nicht.
Das kaufmännische Und an sich ist also eine Binärdatei und ein Operator.
Das bedeutet also, dass ein wenig in das Ergebnis kopiert wird, wenn
es in beiden Operanden vorhanden ist. Wenn also beide wahr sind, wird
es ein bisschen kopiert.
Wenn also a und b gleich 12 sind,
erhalten Sie eine binäre Darstellung von 0 0 0 0 1 1 0 0.
A und b wären
also diese Zahl. Wir werden einige Beispiele durchgehen.
Eine Binärdatei oder kopiert ein Bit, wenn es in einem der Operanden vorhanden ist, sodass
a oder b ein Bit kopieren,
wenn es in einem der Operanden vorhanden ist. Wenn also einer der
Operanden gleich 1 ist, wird ein Bit kopiert.
Und dann das binäre xor, das ist das exklusive oder.
Dadurch wird das Bit kopiert, wenn es in einem Operanden gesetzt ist, jedoch nicht in beiden.
Wenn Sie also ein wahres, aber nur ein
wahres haben und die Karotte verwenden, um dies auf Ihrer Tastatur darzustellen,
wird es ein wenig kopiert und es wird sagen,
dass es
wahr ist, binäres 1s-Komplement.
Also bekommen wir hier wieder die Binärdaten, weil wir über Bits sprechen. Also hoffentlich die Ergänzung
von 1.
Der Bediener ist unär und bewirkt, dass die
Bits umgedreht werden, im Grunde genommen nur negiert und der Monitor abgenommen wird.
Ein Beispiel hier war also, wenn Sie Tilde a
sagen, wenden Sie den 1s-Komplementoperator an.
Und wenn es gleich negativ 61 ist, ist es 1 1 0 0 0 0 1.
Wenn Sie also tatsächlich diese Binärzahl in eine
Dezimalzahl umwandeln, ist dies eine negative Zahl und die erste
Zahl ist das Vorzeichen. Also sage ich dir, dass es ein Zeichen ist.
Und dann sagst du 1 2 4 8 16 33
und dann 61, so würde es dargestellt werden.
Ich werde also konkretere Beispiele dafür durchgehen.
Aber wenn Sie eine Binärzahl haben, ist a anfangs eine Binärzahl, die 0 0 1 1 1 1
0 0 ist, was 60 ist, und Sie liefern das
Umdrehen, im Grunde wird es dann zu negativ
61, was 1 1 0 0 0 ist 0 0 0 0 0 0 1 1.
Das sind also die Ergebnisse von Variablen, die tatsächlich gesetzt sind. Ich gehe also wieder davon aus,
dass a eine bestimmte binäre Darstellung hat und b eine bestimmte binäre Darstellung hat.
Wenn also a gleich 60 und
b gleich 13 ist, ist das Ergebnis der
bitweisen Addition 0000 11 00, also 12.
Ich werde diese Beispiele noch einmal durchgehen, aber dies versucht,
eine kleine Beschreibung dieser verschiedenen Binäroperatoren zu liefern.
Das Symbol "weniger als weniger als" verschiebt die Bits nach links.
Der Wert des linken Operanden wird also um die Anzahl der vom weißen Operanden angegebenen Bits nach links verschoben.
Wenn Sie also so etwas wie a
kleiner als 2
machen und a tatsächlich gleich einer Binärzahl ist,
z. B. 0 0 1 1 1 1 0 0, werden Sie die
Bytes um 2 verschieben.
Sie werden also die Nullen abnehmen und es wird 1 1 1 1, und diese Nullen werden bis zum Ende gehen.
Und das Gleiche gilt für den rechten Schichtführer. Sie verschieben sie nur nach rechts und nicht nach links.
Hier verwenden Sie die Symbole größer als.
Und so werde ich diese in einer Sekunde durchgehen.
Die andere wichtige Sache, die mit den bitweisen Operatoren zu verstehen ist, ist,
wie diese a- und b-Werte ausgewertet werden. Was bedeutet eine 1 und
eine 1 für eine 1, wenn es sich um ein
kaufmännisches Und handelt? Wenn es ein oder 1
ist und 1 auch 1 ergibt.
Aber eine 1 und 1 und eine 0, wenn Sie ein kaufmännisches Und
verwenden, das ein und ausführt, ergibt 0 false. Deshalb wollte ich hier nur eine kleine
Wahrheitstabelle bereitstellen, die Ihnen die Werte zeigt, wenn Sie dies
tun. Sie verwenden ein und ein oder ein exklusives oder.
Wenn Sie also p0 und q0 haben, was bedeutet, dass beide falsch sind
und Sie ein und anwenden, wird es
falsch sein, weil beide wahr sein müssen, damit das wahr ist.
Und das sehen Sie in Zeile 3.
Sie sind beide wahr, dann werden p und q zu 1 ausgewertet, wahr.
Wenn sie nicht beide wahr sind, ist es immer falsch.
P oder q nur 1 von ihnen muss wahr sein.
Deshalb sehen Sie Zeilen 1 und Zeilen 2 gleich 1 und Zeile 3 gleich 1.
Das einzige Mal, wenn es falsch ist, ist, wenn beide falsch sind.
Und dann ist das Exklusive oder mindestens 1 von ihnen
wahr und nur 1.
Wenn also p falsch und q wahr ist, gibt es wahr zurück.
Und wenn p wahr und q falsch ist, gibt es 1 zurück.
Dies gibt Ihnen eine Vorstellung davon, wie es bewertet wird.
Wieder viel Mathe, aber wenn wir über Binärziffern sprechen, dann ist es das, worüber wir sprechen.
Schauen wir uns also einige konkrete Beispiele und Codeblöcke an. Hoffentlich hilft das ein bisschen.
Hier ist also unsere Funktion. Ich werde noch ein paar Variablen erstellen.
Ich werde sicherstellen, dass sie nicht signiert sind, obwohl
dies standardmäßig der Fall ist. Wenn ich also unsigned int a
sage und es 60 zuweise, wird das tatsächlich binär als 0 0 1
1 und dann als 11 00 dargestellt.
Wenn ich eine andere vorzeichenlose Variable erstelle und int
b sage und den Wert 13
zuweise, wird dies tatsächlich wie in der Binärdatei 0 0 00
1 1 0 1 dargestellt. Dort können Sie die Konvertierungen durchführen.
Was ich hier demonstrieren möchte, ist, dass Sie beim Einrichten dieser
Binärzahlen die Bits mithilfe der verschiedenen bitweisen Operanden ausschalten können.
Dann erstelle ich einfach ein int-Ergebnis und sage, dass es
gleich 0 sein wird.
E wird das Ergebnis der bitweisen Operation enthalten.
Betrieb. Wenn ich nun sage, dass c
gleich a ist und ich den bitweisen Operanden und a und b
anwende, sollte dies nun tun, wenn a gleich 1 und b gleich 1
ist, werden diese Bits eingeschaltet. Also, was würden Sie das Ergebnis dieser v erwarten.
Nun, Sie sehen sich das erste Bit von a an und Sie sehen sich das erste Bit von
b an und beide sind 0.
Das Ergebnis wird also 0 sein, denn
wenn Sie es in a und a b wahr machen, müssen beide wahr sein, um 1 zu sein.
Der nächste wird also auch 0 sein. Das nächste ist 1 und 0, das dritte Bit.
Es ist also immer noch 0, 1 und 0 ist immer noch 0. Und dann haben wir jetzt eine 1 und eine 1.
Jetzt haben wir endlich eine wahre. Wir haben noch eine 1 und 1. Wir haben eine wahre.
Und dann werden 0 und 0 0 sein und dann werden 0 und
1 0 sein.
Wenn ich also versuchen würde, c auszudrucken, wird der
Wert im Dezimalformat ausgedruckt. Wenn ich so etwas machen
würde, würde es das Dezimaläquivalent dieser Binärzahl ausdrucken, das das
Äquivalent von 0 0 0 0 wäre.
Und das alles konvertiert Binär in Dezimal. Sie müssen also verstehen, wie
das geht, um dieses Beispiel zu verstehen. Aber 0 0 0 0 1
1 0 0 ist tatsächlich 1 3 7, der Wert
ist tatsächlich 12, 1 3 6 12.
Das würde also zwölf ausdrucken, wenn
ich c ausdrucken
würde, oder das Ergebnis wäre besser.
Wenn ich dies ausführe, werden Sie sehen, dass der Wert 12 ist.
Es wurden tatsächlich alle Bits basierend auf dem kaufmännischen Und-Vergleich ein- und ausgeschaltet.
Jetzt sage ich
also run, wir sehen, dass der Wert in d12 ist,
weil er sich aus- und einschaltet und tatsächlich
als 0 0 0 1 1 0 0 dargestellt
wird. Dies ist der Wert 12, weil wir eine Dezimalzahl ausdrucken .
Wenn ich dies ändern würde und jetzt ein oder
machen möchte und ich immer noch das oder und das oder mache,
ist die
parallele Leiste direkt neben der Eingabe, jetzt werde ich nur Bits einschalten,
wenn entweder 1 ist wahr. Also 00, beide
sind falsch. Wieder vergleiche ich hier oben.
Ich vergleiche diese Bits für 16 und 13.
16 wird als binär 0 0 1 1 1 1 0 0 dargestellt.
13 wird binär dargestellt 0 0 0 0 1 1 0 ist 1.
Jede dieser Zahlen repräsentiert ein bisschen.
Das erste Bit in 60 ist also 0, das erste Bit in 13 ist 0.
Und wenn ich diese zusammen bestelle, 0 und 0, bekomme ich immer noch 0. Das ist also das erste Ergebnis des ersten Bits.
Wieder das zweite Bit 00. Das dritte Bit ist 1 für 60
und 0 für 13.
Das alles bedeutet, dass ich 1 wahr haben muss, also wird das eine 1 sein.
Gleiches gilt für Bit Nr. 4 und 16, 13. Jetzt habe ich wieder eine 1.
Und dann eine 1 und eine 1, sie sind beide wahr. Also nochmal 1, alles was
ich brauche ist 1 wahr, noch eine 1.
Beides falsch, das wird also nicht wahr sein. 0, erinnere dich ist nicht
wahr, 1 ist wahr und 0 11. Jetzt habe ich also 0 0 1 1 1 1 0 1.
Und der Wert davon in Dezimalzahl, wenn ich es ausdrucken
möchte, ist wieder, dass Sie verstehen müssen, wie man Binär
in Dezimalzahl konvertiert, aber es geht im Grunde 1 3
7 15 30 61. Das wird also 61 ausdrucken.
Beenden Sie dieses Programm und erstellen Sie
es neu. Wir werden einen Wert von 61 sehen.
Das sind also bitweise Operatoren. Und wieder ist es
eher eine Art fortgeschrittener Programme, aber es ist eine
gute Möglichkeit, viele Daten durch kaufmännisches Und usw. darzustellen, indem man im
Wesentlichen Bits ein- und ausschaltet. Sie könnten also
damit herumspielen. Sie könnten das Exklusive tun oder welches die Karotte ist.
Die Karotte befindet sich über der 6, Nummer 6 auf der Tastatur.
Sie würden ein anderes Ergebnis sehen. Wenn Sie die Tilde hinzufügen würden, würde dies im Grunde alles ausschalten.
Wenn also a und a gleich 60, 0 0 1 1 1 1 0 0 ist,
ist es nicht gleich 1 1 0 0 0 0 1 1.
Eine andere wirklich coole Sache, die Sie mit den Binäroperatoren machen können, ist
das Verschieben, Verschieben nach links und rechts. Es gibt ein paar wichtige Dinge, die Sie wissen,
wenn Sie nach links oder rechts wechseln müssen.
Zunächst wissen wir, dass ein Int ohne Vorzeichen bedeutet, dass dies
nur positiv sein kann. Es kann nicht negativ sein.
Wenn Sie also einen negativen Wert darin speichern, konvertiert die Kompilierung ihn länger und nimmt viel Größe ein.
Denken Sie also daran, dass vorzeichenlose Ints bedeuten, dass Sie nur positive Werte haben können.
Vorzeichenbehaftete Ganzzahlen bedeuten, dass sie negativ oder positiv sein können.
Aber wenn Sie verschieben möchten, denken
Sie daran, um nach links zu verschieben. Wenn wir also sagen, dass
das Ergebnis gleich ist und wir sagen, dass wir a verschieben möchten, sagen
wir, um 2, ist
das andere wichtige, was Sie wissen möchten, wann Sie es
haben Die Ganzzahlen, Ganzzahlen, sind auf den meisten
Plattformen 4 Byte. Es hängt davon ab, ob Sie die
Größe ermitteln können, indem Sie die Größe des Operators festlegen. Die ganze Zahl ist also
wirklich 4 ist 32 Bit, also ist die
Zahl wirklich so etwas. Die 16 so
ähnlich was ist das 4 8 12 16 20 24.
Also du wahrscheinlich so etwas und so etwas.
Das ist wirklich die Nummer. Ich habe nur die letzten
8 Bits gezeigt, weil der Rest 0s war. Wenn Sie dies jedoch als eine 32-Bit-Ganzzahl
betrachten, die 4 Bytes beträgt, sieht dies in Binärform, 4
0s 4 0s 4 0s 4 0s 4 0s 4 0s und dann
0 0 1 1 1 1 0 0 aus .
Und so haben Sie die Größe kennengelernt, wenn Sie nach links
oder rechts verschieben, denn wenn Sie mehr als 2 verschieben, ist dies nicht klar.
Es fällt nicht ab oder so etwas.
Lassen Sie mich also noch einmal sicherstellen, dass 48 12 16 20
24 28 32 und dasselbe für 13 gilt.
Wenn Sie also größer als 2 nach
links verschieben, werden Sie am Ende auch diese
Einsen nach links verschieben. Das Ergebnis werden also immer
noch alle vorhergehenden Nullen sein, aber
dann haben Sie 1 1 1 1 0 0 0 0 0.
Und das wird gleich 240 sein.
Und wenn ich eine schnelle Konvertierung mache, mache ich das in meinem Kopf, indem
ich 1 3 7 15 30 60 122 40 sage, aber
wir können das durch Erstellen und Ausführen bestätigen und Sie werden sehen,
dass das Ergebnis 240 ist.
Und wir sehen, dass das Ergebnis 240 ist.
Wenn Sie also tatsächlich zu meinen mehr als 2 Sekunden wechseln möchten und
sagen, dass Sie um 4 verschieben möchten, ist es wichtig zu verstehen, dass es sich um eine 32-Bit-Zahl handelt.
Hier müssten Sie also tatsächlich einige dieser Nullen verwenden.
Wenn Sie also wirklich um 4 verschieben möchten, haben Sie
einfach so etwas.
Und wenn Sie sie dann nach
4 gruppieren möchten, haben
Sie so etwas. Das Ergebnis hier wäre
also wieder, wenn ich das in meinem Kopf mache,
Sie haben 1 3 7 15 30 60
120 240 480 und dann 960.
Hoffentlich habe ich das richtig gemacht. Nochmals, wenn wir dies ausführen und
960 sagen, verschiebt sich
das nach links. Wenn Sie nach
rechts verschieben möchten, verwenden Sie die Symbole größer als.
Wenn Sie also zum rechten binären Rechtsverschiebungsoperator wechseln, tun
Sie das Größere als. Binärer Linksschieber, Sie machen das weniger als.
Wenn Sie also nach rechts wechseln möchten, möchten Sie nach rechts gehen. 4.
Und was passiert, wenn Sie hier das Ende haben? Wenn Sie also Ihre ursprünglichen
60 haben, versuchen Sie, 4 zu gehen. Sie werden Ziffern haben, die einfach abgesetzt werden.
Also anstatt diese letzten 4 zu haben, die
ursprünglich wieder 60 haben. Wir haben also
0 0 0 1 1 1 1 0 0, wir müssen über 4 gehen.
Also werden wir am Ende 2 Bits verlieren, weil sie einfach abfallen werden.
Und was wir am Ende
haben werden, ist so etwas wie
diese 0 0. Und so wäre dies nur gleich 3,
so etwas, so dass Sie tatsächlich Bits verlieren, weil Sie zu viel nach rechts verschieben,
Sie haben das Ergebnis von 3. Sie müssen also vorsichtig sein,
wenn Sie nach links und rechts verschieben. Stellen Sie sicher, dass
Sie diese 32-Bit-4-Bytes je nach System erneut verwenden.
Es ist eine kurze Zusammenfassung der bitweisen Operatoren.
Wenn Sie fortgeschrittener sind, müssen Sie verstehen, wie Sie
tatsächlich überprüfen können, ob ein bestimmtes Bit 1 oder 0 ist.
Es ist ziemlich einfach. Du machst einfach ein und drauf.
Aber Sie müssen ein bisschen mehr Code schreiben.
Diese Vorlesung sollte keinen erschöpfenden Blick auf bitweise Operatoren werfen.
Ich wollte einen Überblick
geben, Ihnen einen guten Vorsprung verschaffen. Aber um diese Operatoren besser zu
verstehen, müssen Sie viel mehr lernen und sie verwenden und üben.
Ich hoffe das war hilfreich. Auch hier kann es etwas verwirrend werden,
so dass Sie folgen und damit herumspielen möchten. Aber was ist der beste Weg, um zu lernen, Code
zu schreiben und einige Beispiele zu lernen? Vielen Dank.