A left / right shift (also known as a logical shift) is when you 'move' the contents of a number to the right or left.
For instance, if I take the binary number 00111100, and left shift it by two places, I get 11110000 - the 1111 is moved two places to the left. If I left shift it by four places, I get 1111000000.
The right shift is slightly different. When I right shift, digits 'fall off' the 'end' of the number. For example, if I right shift 00111100 by two places, I get 00001111. If I right shift it by four places, I get 00000011.
In effect, a left shift multiplies, and a right shift divides by powers of two. If I take the binary number 10 (=2), and left shift it by 1, I get 100 (4). Thus, left shifting by X places is the same as multiplying by 2 to the power of X. Right shifting is the same, but for division.
What's significant is that left and right shifts are far faster to perform than multiplication and division. On most CPUs, division is horrendously slow, so compilers will usually swap any division by a power of two with an appropriate logical right-shift. This makes your application faster.