Операції зсуву (<< і >>) застосовуються до цілочисельних операндів. Вони зрушують двійкове представлення першого операнда вліво або вправо на кількість двійкових розрядів, задану другим операндом. При зрушенні розряди, що звільнилися вліво (<<) , обнуляються. При зсуву біти, що звільнилися управо (>>), заповнюються нулями, якщо операнд додатний або беззнакового типу. Для від’ємних чисел вони заповнюються одиницею (1). Операції зсуву ніколи не приводять до переповнювання і втрати значущості. Стандартні операції зсуву визначені для типів int, uint, long і ulong.
Приклад застосування операцій зсуву представлений в лістингу 3.5.
Лістинг 3.5. Операції зсуву
using System;
namespace Consoleapplicationl
{
class Classl
{
static void Main( )
{
byte a = 3, b = 9;
sbyte с = 9, d = -9;
Console.WriteLine( a << 1 ); // Результат 6
Console.WriteLine( a << 2 ); // Результат 12
Console.WriteLine( b >> 1 ); // Результат 4
Console.WriteLine( с >> 1 ); // Результат 4
Console.WriteLine( d >> 1 ); // Результат -5
}
}
}