Beetwise

Left shift

A left shift moves every bit to a higher position.

The empty low positions fill with 0.

A shift of one position multiplies the value by 2.

Try the left shift in the bit editor

The result of 1 shifted left by 4 positions. Edit the expression or select a bit to flip it.

7
6
5
4
3
2
1
0
16
value · 8 bits · unsigned
hex
0x10
Bit width
Shift

The left shift step by step

Shift 1 left by four positions:

  1. Write the value: 00000001.
  2. Move every bit four positions to the left.
  3. Fill the four low positions with 0.
  4. The result is 00010000, which is 16.

The value 1 shifted left

The value 1 shifted left
ExpressionBinaryDecimal
1 << 0000000011
1 << 1000000102
1 << 2000001004
1 << 3000010008
1 << 40001000016
1 << 50010000032
1 << 60100000064
1 << 710000000128

Where the left shift is used

The expression 1 << n gives a mask with only bit n set. This is the most common use.

A left shift places a field at the correct bit position before an OR.

A shift is cheaper than a multiplication on a processor without a multiplier.

The left shift: points to note

  • The register drops a bit that moves past the top. A shift back does not restore it.
  • A left shift of 1 by 8 positions gives 0 in an 8-bit register, not 256.
  • A shift by a number of positions equal to or larger than the bit width gives undefined behaviour in C.

The full bit editor

The full editor holds many values, evaluates expressions across them, and reads live values from a serial port.

Open this value in the full editor

Questions about the left shift

What is 1 shifted left by 4?
The result is 16. The single set bit moves from position 0 to position 4.
Is a left shift a multiplication by two?
Yes, for each position, until the register drops a bit at the top.
Why do drivers write 1 << n?
The expression builds the mask for bit n without a table of constants.