Vorzeichenloser Rightshiftzuweisungsoperator (>>>=)
Aktualisiert: November 2007
Verschiebt den Wert einer Variablen um die Anzahl der Bits, die im Wert eines Ausdrucks angegeben sind, ohne das Vorzeichen beizubehalten nach rechts und weist das Ergebnis der Variablen zu.
result >>>= expression
Argumente
result
Beliebige numerische Variable.expression
Beliebiger numerischer Ausdruck.
Hinweise
Die Verwendung dieses Operators entspricht in etwa der Angabe von result = result >>> expression, mit der Einschränkung, dass result nur einmal ausgewertet wird.
Der vorzeichenlose Rightshiftzuweisungsoperator (>>>=) verschiebt die Bits von result um die Anzahl der Bits, die in expression angegeben sind, nach rechts. Von links wird mit Nullen aufgefüllt. Nach rechts verschobene Stellen entfallen. Der Operator maskiert expression, um zu verhindern, dass result zu weit verschoben wird. Andernfalls, d. h., wenn die Verschiebung die Anzahl der Bits im Datentyp von result ü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: expression (mithilfe des bitweisen AND-Operators) mit einem Wert maskieren, der um eins kleiner ist als die Anzahl der Bits in result.
Beispiel
Beispiel:
var temp
temp = -14
temp >>>= 2
Die temp-Variable hat einen Wert von 1073741820, da -14 (binär 11111111 11111111 11111111 11110010), um zwei Bits verschoben, 1073741820 (binär 00111111 11111111 11111111 11111100) ergibt.
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
x >>>= 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in x are 00000011
// The value of x is 3
print(x); // Prints 3
Anforderungen
Siehe auch
Konzepte
Zusammenfassung der Operatoren
Umwandlung durch bitweise Operatoren
Referenz
Vorzeichenloser Rechtsschiebeoperator (>>>)
Bitweiser Linksschiebeoperator (<<)