Sdílet prostřednictvím


<< Operátor (C#-Reference)

Operátor levý shift (<<) směny jeho prvním operandem vlevo podle počtu bitů určeného jeho druhým operandem.Musí být typu druhý operand int nebo typ, který má předdefinované implicitní číselné převod na int.

Poznámky

Pokud je první operand int nebo uint (32-bit množství), počet shift je dána nejnižší pět bitů druhým operandem.Počet skutečných shift je 0 až 31 bitů.

Pokud je první operand dlouhý nebo ulong (64-bit množství), počet shift je dána nejnižší šest bitů druhého operandu.Počet skutečných shift je 0 až 63 bitů.

Jakékoli nejvyšších bitů, které není v rozsahu typ prvního operandu po shift budou odstraněny a prázdné nejnižší bity jsou vyplněny nulovými hodnotami.Operace SHIFT nikdy způsobit přetečení.

Uživatelem definované typy může přetížit << operátor (viz operátor); první operand typu musí být uživatelem definovaný typ a typ druhý operand musí být int.Při binární operátor je přetížený, odpovídající operátor přiřazení, je také implicitně přetížený.

Příklad

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

Komentáře

Všimněte si, že i<<1 a i<<33 dát stejný výsledek, protože mají stejnou nejnižší pět bitů 1 a 33.

Viz také

Referenční dokumentace

Hospodářské subjekty C#

Koncepty

Příručka programování C#

Další zdroje

C#-Reference