Der Verschiebungsoperator dient zum Verschieben von Zahlen basierend auf Binärwerten. Entsprechend der Übersetzungsrichtung und den Füllregeln werden Zahlen in drei Typen unterteilt: << (Rechtsverschiebung mit Vorzeichen) und >>> .
Während der Verschiebungsoperation wird das Ergebnis der Verschiebung der Typen Byte, Short und Char zum Typ Int. Beim Verschieben von Byte, Short, Char und Int wird die tatsächliche Anzahl der Bewegungen als Anzahl der Bewegungen plus 32 angegeben Der Rest, d. h. das Ergebnis, das durch 33-maliges Verschieben und einmaliges Verschieben erhalten wird, ist dasselbe. Wenn Sie einen langen Wert verschieben, ist die tatsächliche Anzahl der Züge der Rest der Anzahl der Züge und 64, d. h. das Ergebnis einer 66-maligen Bewegung ist dasselbe wie einer 2-maligen Bewegung.
386 und spätere Hardware moduliert die Verschiebung auf die Wortlänge. Eine Verschiebung um 32 Bits nach rechts bedeutet eine Verschiebung um 0 Bits nach rechts (die CPU verschiebt die Anzahl der 32 Bits nach rechts, um die Wortlänge 32 zu erhalten 0 ), also ist 9 um 32 Bit nach rechts verschoben immer noch 9. Sie können die Bedingung der for-Schleife ändern, beispielsweise in i<=64, und Sie werden feststellen, dass das Ergebnis dasselbe ist.
Die Bewegungsregeln und die Verwendung der drei Verschiebungsoperatoren lauten wie folgt:
<
Die Zahl, die verschoben werden muss << Die Anzahl der Verschiebungen
Zum Beispiel: 3 <<, dann verschieben Sie die Zahl 3 um 2 Stellen nach links
Berechnungsvorgang: < 3 < und schließlich die beiden leeren Bits in den unteren Bits (rechts) mit Nullen auffüllen. Das Endergebnis ist 0000 0000 0000 0000 0000 0000 0000 1100, was in eine Dezimalzahl umgewandelt 12 ist. Mathematische Bedeutung:
Unter der Voraussetzung, dass die Zahl nicht überläuft, ist für positive und negative Zahlen eine Verschiebung um eine Position nach links gleichwertig zur Multiplikation Wenn 2 auf die Potenz 1 erhöht wird, entspricht das Verschieben von n Bits nach links der Multiplikation mit 2 auf die Potenz n.
>>Operationsregeln: Verschieben Sie alle Zahlen in binärer Form um die entsprechende Anzahl von Stellen nach rechts, verschieben Sie die niedrigen Bits (verwerfen Sie sie) und füllen Sie die Vorzeichenbits in die hohen Bits ein, dh füllen Sie sie aus in Nullen für positive Zahlen und 1 für negative Zahlen
Die Zahl, die verschoben werden muss >> Zum Beispiel bedeutet 11 >> Zahl 11 um 2 Stellen nach rechts
Berechnungsprozess: die binäre Form von 11 Es ist: 0000 0000 0000 0000 0000 0000 0000 1011, und verschieben Sie dann die letzten beiden Zahlen in den unteren Bits Bei einer bestimmten Zahl werden den High-Bits Nullen hinzugefügt. Das erhaltene Endergebnis ist 0000 0000 0000 0000 0000 0000 0000 0010. In eine Dezimalzahl umgewandelt ist 3.
Mathematische Bedeutung: Das Verschieben eines Bits nach rechts entspricht einer Division durch 2, und das Verschieben von n Bits nach rechts entspricht einer Division um 2 hoch n.
>>>Operationsregeln: Verschieben Sie alle Zahlen um die entsprechende Anzahl von Stellen in Binärform nach rechts, verschieben (verwerfen) Sie die niedrigen Bits und füllen Sie die leeren Bits in den hohen Bits mit Nullen auf. Dies ist dasselbe wie eine Rechtsverschiebung mit Vorzeichen für positive Zahlen, unterscheidet sich jedoch für negative Zahlen.
Andere Strukturen ähneln >>.