BIT_SHIFT_RIGHT() — Shifts the bits of a BIGINT value to the right a specified number of places.

BIT_SHIFT_RIGHT( *value*,
*offset* )

The BIT_SHIFT_RIGHT() function shifts the bit values of a BIGINT
value to the right the number of places specified by
*offset*. The offset must be a positive integer
value. The unspecified bits to the left are padded with zeros. So, for
example, if the offset is 5, the right-most 5 bits are dropped, the
remaining bits are shifted 5 places to the right, and the left-most 5 bits
are set to zero. The result is returned as a new BIGINT value — the
arguments to the function are not modified.

The left-most bit of an integer number is the sign bit, but has no special meaning for bitwise operations. However, The left-most bit set to 1 followed by all zeros is reserved as the NULL value. If you use a NULL value as an argument, you will receive a NULL response. But in all other circumstances (using non-NULL BIGINT arguments), the bitwise functions should never return a NULL result. Consequently any bitwise operation that would result in only the left-most bit being set, will generate an error at runtime.

The following example shifts the bits in a BIGINT value three places to the right and displays the hexadecimal representation of both the initial value and the resulting value.

$ sqlcmd 1> create table bits (a bigint); 2> insert into bits values (112); 3> select hex(a), hex(bit_shift_right(a,3)) from bits; C1 C2 -------- ------- 70 E