Condividi tramite


Operatore di assegnazione Left Shift (<<=)

Consente di spostare il valore di una variabile verso sinistra per il numero di bit specificati nel valore dell'espressione e di assegnare il risultato alla variabile.

result <<= expression

Argomenti

  • result
    Qualsiasi variabile numerica.

  • expression
    Qualsiasi espressione numerica.

Note

Il risultato che si ottiene utilizzando questo operatore è analogo a quello ottenuto specificando result = result << expression, con la differenza che result viene valutato una sola volta.

Mediante l'operatore <<= vengono spostati i bit di result verso sinistra del numero di bit specificati in expression. Viene eseguito il mascheramento di expression per impedire che lo spostamento di result sia eccessivo. In caso contrario, se l'entità dello spostamento eccedesse il numero di bit incluso nel tipo di dati di result, tutti i bit originali verrebbero spostati in misura tale da non poter fornire un risultato significativo. Per garantire che a ogni spostamento venga mantenuto almeno uno dei bit originali, gli operatori appropriati calcolano l'entità effettiva dello spostamento utilizzando la seguente formula: mascheramento dell'argomento expression mediante l'operatore AND bit per bit con un numero di bit inferiore di un'unità rispetto a quello specificato in result.

Esempio

Ad esempio:

var temp
temp = 14
temp <<= 2 

Il valore della variabile temp è 56 in quanto, dopo uno spostamento a sinistra di due bit, il valore 14 (00001110 in formato binario) risulta uguale a 56 (00111000 in formato binario). Quando viene eseguito lo spostamento, vengono inseriti automaticamente zeri di riempimento.

Mediante l'esempio seguente è possibile comprendere le modalità di funzionamento del mascheramento.

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

Requisiti

Versione 1

Vedere anche

Riferimenti

Operatore Left Shift bit per bit (<<)

Operatore Right Shift bit per bit (>>)

Operatore Right Shift senza segno (>>>)

Operatore di assegnazione (=)

Concetti

Precedenza tra gli operatori

Riepilogo degli operatori