bit_shift_right

description

syntax

BIT_SHIFT_RIGHT(BIGINT x, TINYINT c)

返回对 BIGINT 类型 x 进行逻辑右移 c 位的结果。

example

Normal case

1. select 1024 as x, number as c, bit_shift_right(1024, number) as bit_shift_right from numbers("number"="5")
2. --------------

4. +------+------+-----------------+
5. | x    | c    | bit_shift_right |
6. +------+------+-----------------+
7. | 1024 |    0 |            1024 |
8. | 1024 |    1 |             512 |
9. | 1024 |    2 |             256 |
10. | 1024 |    3 |             128 |
11. | 1024 |    4 |              64 |
12. +------+------+-----------------+
13. 5 rows in set (0.03 sec)

BIGINT -1 逻辑右移一位得到的结果是 BIGINT_MAX

1. select bit_shift_right(-1, 1)
2. --------------

4. +------------------------+
5. | bit_shift_right(-1, 1) |
6. +------------------------+
7. |    9223372036854775807 |
8. +------------------------+

如果 c 小于 0 得到的结果始终为 0

1. select bit_shift_right(100, -1)
2. --------------

4. +--------------------------+
5. | bit_shift_right(100, -1) |
6. +--------------------------+
7. |                        0 |
8. +--------------------------+
9. 1 row in set (0.04 sec)

keywords

1. BITSHIFT, BITSHIFTRIGHT