<<Operador (translation from VPE for Csharp Reference)
O operador deslocar esquerda (<<) desloca o primeiro operando à esquerda pelo número de bits especificado pelo seu segundo operando. O tipo do segundo deve ser um int.
Comentários
Se o primeiro operando é um int or uint (quantidade de 32 bit), o deslocar contagem é dado pelos cinco bit de ordem inferior do segundo operando.
Se o primeiro operando for um longo or ULong (quantidade de 64 bit), a contagem de deslocamento é dado pelos seis bit de ordem inferior do segundo operando.
Os bits de ordem superior do primeiro operando são descartados e os bits de ordem inferior vazios são preenchidas com zero.Operações deslocar nunca causam estouros.
Tipos definidos pelo usuário podem sobrecarregar o << operador (consulte operador); o tipo do primeiro operando deve ser do tipo definido pelo usuário, e o tipo do segundo deve ser int. Se houver, quando um operador binário está sobrecarregado, o operador de atribuição correspondente, também será implicitamente sobrecarregado.
Exemplo
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
*/
Comentários
Observe que i<<1 e i<<33 fornecer o mesmo resultado, como 1 e 33 têm os mesmos cinco bits de ordem inferior.