Condividi tramite


Operatore di spostamento a destra senza segno (>>>)

Aggiornamento: novembre 2007

Consente di spostare verso destra i bit di un'espressione ignorando il segno.

expression1 >>> expression2

Argomenti

  • expression1
    Qualsiasi espressione numerica.

  • expression2
    Qualsiasi espressione numerica.

Note

Mediante l'operatore >>> vengono spostati i bit di expression1 verso destra del numero di bit specificati in expression2. Gli zeri di riempimento vengono inseriti da sinistra. Le cifre spostate verso destra vengono eliminate. Il tipo di dati utilizzato in expression1 determina il tipo di dati restituito dall'operatore.

Viene eseguito il mascheramento di expression2 per impedire che lo spostamento di expression1 sia eccessivo. In caso contrario, se l'entità dello spostamento eccedesse il numero di bit incluso nel tipo di dati di expression1, tutti i bit originali verrebbero spostati in misura tale da non poter fornire un risultato significativo. Per garantire che ad 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 expression2 mediante l'operatore AND bit per bit con un numero di bit inferiore di un'unità rispetto a quello specificato in expression1.

Esempio

Di seguito è riportato un esempio:

var temp
temp = -14 >>> 2

Il valore della variabile temp è 1073741820, in quanto dopo lo spostamento a destra di due bit, il valore -14 (11111111 11111111 11111111 11110010 in formato binario) risulta uguale a 1073741820 (00111111 11111111 11111111 11111100 in formato binario).

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
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

Requisiti

Versione 1

Vedere anche

Concetti

Precedenza tra gli operatori

Riepilogo degli operatori

Coercizione mediante gli operatori bit per bit

Riferimenti

Operatore di assegnazione di spostamento a destra senza segno (>>>=)

Operatore di spostamento a sinistra bit per bit (<<)

Operatore di spostamento a destra bit per bit (>>)