BIT_SHIFT_RIGHT
Description
Performs a right shift bitwise operation, which moves all bits of a binary number to the right by a specified number of positions. This operation is commonly used for handling binary data or for efficient mathematical calculations (such as division).
Logical right shift of -1 by one position results in BIGINT_MAX (9223372036854775807).
Right shifting a number by a negative value always results in 0.
Syntax
BIT_SHIFT_RIGHT(<x>, <bits>)
Parameters
<x>
: The number to be shifted.<bits>
: The number of positions to shift right. It is an integer that determines how many positions<x>
will be shifted.
Return Value
Returns an integer representing the result after the right shift operation.
Examples
- Example 1
select BIT_SHIFT_RIGHT(1024,3), BIT_SHIFT_RIGHT(-1,1), BIT_SHIFT_RIGHT(100, -1);
+-------------------------+-----------------------+--------------------------+
| BIT_SHIFT_RIGHT(1024,3) | BIT_SHIFT_RIGHT(-1,1) | BIT_SHIFT_RIGHT(100, -1) |
+-------------------------+-----------------------+--------------------------+
| 128 | 9223372036854775807 | 0 |
+-------------------------+-----------------------+--------------------------+ - NULL argument
select BIT_SHIFT_RIGHT(1024, NULL), BIT_SHIFT_RIGHT(NULL, 3), BIT_SHIFT_RIGHT(NULL, NULL);
+-----------------------------+--------------------------+-----------------------------+
| BIT_SHIFT_RIGHT(1024, NULL) | BIT_SHIFT_RIGHT(NULL, 3) | BIT_SHIFT_RIGHT(NULL, NULL) |
+-----------------------------+--------------------------+-----------------------------+
| NULL | NULL | NULL |
+-----------------------------+--------------------------+-----------------------------+