## #74 – Shift Operators

August 30, 2010 2 Comments

C# supports two bitwise shift operators that allow you to shift a series of bits a certain number of bit positions to the left or right.

- << Left shift
- >> Right shift

The shift operators work on the following types: **uint**, **int**, **ulong**, and **long**.

uint u = 0x32 << 4; // Shift 4 bits to left = 0x320 uint u2 = 0xAB0 >> 4; // Shift 4 bits to right = 0xAB

Note that shifting to the left is the same as multiplying the value by 2 to the power of the # of bits shifted. E.g. Shifting by 1 bit doubles the number and shifting by 2 bits multiples the number by 4.

uint u = 12 << 1; // 24 u = u << 3; // * 8 = 192

Similarly, shifting to the right divides the value by 2 to the power of the # of bits shifted.