Compartilhar via


<< Operador (referência de C#)

O operador shift esquerda (<<) turnos seu primeiro operando esquerdo pelo número de bits especificado pelo seu segundo operando.O tipo do segundo deve ser um int ou um tipo que tem uma conversão numérica de implícita predefinida para int.

Comentários

Se o primeiro operando for um int ou uint (quantidade de 32 bits), a contagem shift é dado pelos bits de ordem baixa cinco do segundo.Ou seja, a contagem real shift é bits de 0 a 31.

Se o primeiro operando for um longo ou ulong (quantidade de 64 bits), a contagem shift é dado pelos seis bits de ordem inferior do segundo.Ou seja, a contagem real shift é bits de 0 a 63.

Qualquer bits de ordem superior que não são dentro do intervalo do tipo do primeiro operando após a mudança são descartados e os bits de ordem inferior vazios são preenchidas com zero.SHIFT operações nunca causam estouros.

Tipos definidos pelo usuário podem sobrecarregar o << operador (consulte operador); o tipo do primeiro operando deve ser o 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;
        // Shift i one bit to the left. The result is 2.
        Console.WriteLine("0x{0:x}", i << 1);
        // In binary, 33 is 100001. Because the value of the five low-order
        // bits is 1, the result of the shift is again 2. 
        Console.WriteLine("0x{0:x}", i << 33);
        // Because the type of lg is long, the shift is the value of the six
        // low-order bits. In this example, the shift is 33, and the value of
        // lg is shifted 33 bits to the left.
        //     In binary:     10 0000 0000 0000 0000 0000 0000 0000 0000 
        //     In hexadecimal: 2    0    0    0    0    0    0    0    0
        Console.WriteLine("0x{0:x}", lg << 33);
    }
}
/*
Output:
0x2
0x2
0x200000000
*/

Comentários

Observe que i<<1 e i<<33 dar o mesmo resultado, como 1 e 33 têm os mesmos cinco bits de ordem inferior.

Consulte também

Referência

Operadores de C#

Conceitos

Guia de programação do C#

Outros recursos

Referência de C#