Since version 2.1


rshift!(<byte expression> [, <byte positions>])


rshift(<int expression> [, <byte positions>])

The RSHIFT() function shifts each bit in expression to the right by the number of positions and returns the result of the operation.

The second argument can be omitted and it defaults to 1.

Warning: passing positions bigger than 127 will lead to undefined results.

Performance tip

Shifting the bits to the left is equivalent to dividing by powers of two, however much faster. Example:

rem -- this is slow
x = 364
y = x / 4

rem -- this is fast
x = 364
y = rshift(x, 2)