Bitweiser Rechtsschiebeoperator (>>)

Aktualisiert: November 2007

Verschiebt die Bits eines Ausdrucks unter Beibehaltung der Vorzeichen nach rechts.

expression1 >> expression2

Argumente

  • expression1
    Beliebiger numerischer Ausdruck.

  • expression2
    Beliebiger numerischer Ausdruck.

Hinweise

Der >>-Operator verschiebt die Bits von expression1 um die Anzahl der Bits, die in expression2 angegeben sind, nach rechts. Das Vorzeichenbit von expression1 wird verwendet, um die Stellen von links aufzufüllen. Nach rechts verschobene Stellen entfallen. Der Datentyp von expression1 bestimmt den Datentyp, der von diesem Operator zurückgegeben wird.

Der >>‑Operator maskiert expression2, um zu verhindern, dass expression1 zu weit verschoben wird. Andernfalls, d. h., wenn die Verschiebung die Anzahl der Bits im Datentyp von expression1 überschreitet, werden alle ursprünglichen Bits so verschoben, dass ein triviales Ergebnis zurückgegeben wird. Um sicherzustellen, dass bei jeder Verschiebung mindestens eines der ursprünglichen Bits bestehen bleibt, berechnen die Schiebeoperatoren den tatsächlichen Verschiebebetrag anhand folgender Formel: expression2 (mithilfe des bitweisen AND-Operators) mit einem Wert maskieren, der um eins kleiner ist als die Anzahl der Bits in expression1.

Beispiel

So hat temp nach der Auswertung des folgenden Codes beispielsweise den Wert -4: -14 (binär 11110010), der um zwei Bits nach rechts verschoben -4 (binär 11111100) ergibt.

var temp
temp = -14 >> 2

Betrachten Sie die Funktionsweise der Maskierung anhand des folgenden Beispiels.

var x : byte = 15;
// A byte stores 8 bits.
// The bits stored in x are 00001111
var y : byte = x >> 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in y are 00000011
// The value of y is 3
print(y); // Prints 3

Anforderungen

Version 1

Siehe auch

Konzepte

Operatorrangfolge

Zusammenfassung der Operatoren

Umwandlung durch bitweise Operatoren

Referenz

Bitweiser Linksschiebeoperator (<<)

Rightshiftzuweisungsoperator (>>=)

Vorzeichenloser Rechtsschiebeoperator (>>>)