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