Оператор >> (Справочник по C#)

Обновлен: Ноябрь 2007

Оператор сдвига вправо (>>) сдвигает первый операнд вправо в соответствии с количеством бит, заданным вторым операндом.

Заметки

Если тип первого операнда — int или uint (32-разрядное число), начало сдвига задается пятью младшими разрядами второго операнда (второй операнд & 0x1f).

Если тип первого операнда — long или ulong (64-разрядное число), начало сдвига задается пятью младшими разрядами второго операнда (второй операнд & 0x3f).

Если тип первого операнда — int или long, сдвиг вправо является арифметическим сдвигом (пустым старшим разрядам задан знаковый бит). Если тип первого операнда — init или ulong, сдвиг вправо является логическим сдвигом (старшие разряды заполняются нулями).

Определенные пользователем типы могут вызвать перегрузку оператора >>; тип первого операнда должен быть определен пользователем, а тип второго должен быть int. Дополнительные сведения см. в разделе оператор. Если бинарный оператор перегружен, соответствующий оператор присваивания (если таковой имеется), также будет явно перегружен.

Пример

class RightShift
{
    static void Main()
    {
        int i = -1000;
        Console.WriteLine(i >> 3);
    }
}
/*
Output:
-125
*/

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Операторы C#

Другие ресурсы

Справочник по C#