Operatore << (Riferimenti per C#)

Aggiornamento: novembre 2007

L'operatore di spostamento a sinistra (<<) sposta il primo operando verso sinistra in base al numero di bit specificati nel secondo operando. Il tipo del secondo operando deve essere int.

Note

Se il primo operando è un tipo int o uint (quantità a 32 bit), il conteggio dello spostamento sarà dato dai cinque bit meno significativi del secondo operando.

Se il primo operando è un tipo long o ulong (quantità a 64 bit), il conteggio dello spostamento sarà dato dai sei bit meno significativi del secondo operando.

I bit più significativi del primo operando vengono scartati, mentre i bit vuoti meno significativi vengono riempiti di zeri. Le operazioni di spostamento non provocano mai overflow.

I tipi definiti dall'utente possono sottoporre a overload l'operatore << (per ulteriori informazioni, vedere operator). Il tipo del primo operando deve essere un tipo definito dall'utente, mentre il tipo del secondo operando deve essere int. Quando si esegue l'overload di un operatore binario, viene eseguito in modo implicito anche l'overload dell'eventuale operatore di assegnazione corrispondente.

Esempio

class MainClass11
{
    static void Main()
    {
        int i = 1;
        long lg = 1;
        Console.WriteLine("0x{0:x}", i << 1);
        Console.WriteLine("0x{0:x}", i << 33);
        Console.WriteLine("0x{0:x}", lg << 33);
    }
}
/*
Output:
0x2
0x2
0x200000000
*/

Commenti

Si noti che i<<1 e i<<33 generano lo stesso risultato, in quanto 1 e 33 hanno gli stessi cinque bit meno significativi.

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Operatori di C#

Altre risorse

Riferimenti per C#