跳到主要内容

BIT_SHIFT_RIGHT

描述

用于 右移 位运算,通常用于将二进制数字的所有位向右移动指定的位数。这种操作通常用于处理二进制数据,或者用于一些数学计算(如除法的高效实现)。

对 -1 逻辑右移一位得到的结果是 BIGINT_MAX(9223372036854775807)。

对数字右移负数为得到对结果始终为 0。

语法

BIT_SHIFT_RIGHT( <x>, <bits>)

参数

  • <x> 需要进行位移的数字。
  • <bits> 需要右移的位数。它是一个整数,决定了 <x> 将被右移多少位。

返回值

返回一个整数,表示右移操作后的结果。

举例

  1. 示例 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 |
    +-------------------------+-----------------------+--------------------------+
  2. NULL 参数
    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 |
    +-----------------------------+--------------------------+-----------------------------+