Leftshiftzuweisungsoperator (<<=)

Verschiebt den Wert einer Variablen um die Anzahl der Bits, die im Wert eines Ausdrucks angegeben sind, nach links und weist das Ergebnis der Variablen zu.

result <<= expression

Argumente

  • result
    Beliebige numerische Variable.

  • expression
    Ein 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 Leftshiftzuweisungsoperator (<<=) verschiebt die Bits von result um die Anzahl der Bits, die in expression angegeben sind, nach links. 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 Operators AND) 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 56, da 14 (binär 00001110), um zwei Bits nach links verschoben, 56 ergibt (binär 00111000). Beim Verschieben werden von rechts Nullen aufgefüllt.

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 00111100
// The value of x is 60
print(x); // Prints 60

Anforderungen

Version 1

Siehe auch

Referenz

Bitweiser Linksschiebeoperator (<<)

Bitweiser Rechtsschiebeoperator (>>)

Vorzeichenloser Rechtsschiebeoperator (>>>)

Zuweisungsoperator (=)

Konzepte

Operatorrangfolge

Zusammenfassung der Operatoren