全部产品
云市场

位函数和操作符

更新时间:2019-06-03 15:19:19

  • BIT_COUNT:系统先将参数转换为二进制,然后返回二进制中1的个数。
  • &:按位AND。
  • ~:反转所有位。
  • |:按位OR。
  • ^:按位异或。
  • >>:向右移位。
  • <<:向左移位。
    • BIT_COUNT

      1. bit_count(bigint x)
      2. bit_count(double x)
      3. bit_count(varchar x)
      • 命令说明:系统先将参数转换为二进制,然后返回二进制中1的个数。

      • 返回值类型:BIGINT。

      • 示例:

        1. select bit_count(2);
        2. +--------------+
        3. | bit_count(2) |
        4. +--------------+
        5. | 1 |
        1. select bit_count(pi());
        2. +-----------------+
        3. | bit_count(pi()) |
        4. +-----------------+
        5. | 2 |
        1. select bit_count('123');
        2. +------------------+
        3. | bit_count('123') |
        4. +------------------+
        5. | 6 |

      &

      • 命令说明:按位AND

      • 返回值类型:BIGINT。

      • 示例:

        1. select 12 & 15;
        2. +---------------------+
        3. | bitwise_and(12, 15) |
        4. +---------------------+
        5. | 12 |

      ~

      • 命令说明:反转所有位。

      • 返回值类型:BIGINT。

      • 示例:

        1. select 2 & ~1;
        2. +--------------------------------+
        3. | bitwise_and(2, bitwise_not(1)) |
        4. +--------------------------------+
        5. | 2 |

      |

      • 命令说明:按位OR

      • 返回值类型:BIGINT。

      • 示例:

        1. select 29 | 15;
        2. +--------------------+
        3. | bitwise_or(29, 15) |
        4. +--------------------+
        5. | 31 |

      ^

      • 命令说明:按位异或。

      • 返回值类型:BIGINT。

      • 示例:

        1. select 1 ^ 10;
        2. +--------------------+
        3. | bitwise_xor(1, 10) |
        4. +--------------------+
        5. | 11 |

      >>(BITWISE_RIGHT_SHIFT)

      1. bitwise_right_shift(double x, double y)
      2. bitwise_right_shift(varchar x, varchar y)
      3. bitwise_right_shift(bigint x, bigint y)
      • 命令说明:向右移位。

      • 返回值类型:BIGINT。

      • 示例:

        1. select 3 >> 2;
        2. +---------------------------+
        3. | bitwise_right_shift(3, 2) |
        4. +---------------------------+
        5. | 0 |
        1. select 3.4 >> 23.2;
        2. +--------------------------------+
        3. | bitwise_right_shift(3.4, 23.2) |
        4. +--------------------------------+
        5. | 0 |

      <<(BITWISE_LEFT_SHIFT)

      1. bitwise_left_shift(double x, double y)
      2. bitwise_left_shift(varchar x, varchar y)
      3. bitwise_left_shift(bigint x, bigint y)
      • 命令说明:向左移位。

      • 返回值类型:BIGINT。

      • 示例:

        1. SELECT 3 << 2;
        2. +--------------------------+
        3. | bitwise_left_shift(3, 2) |
        4. +--------------------------+
        5. | 12 |
        1. select '3' << '2';
        2. +------------------------------+
        3. | bitwise_left_shift('3', '2') |
        4. +------------------------------+
        5. | 12 |
        1. select 3.4 << 23.2;
        2. +-------------------------------+
        3. | bitwise_left_shift(3.4, 23.2) |
        4. +-------------------------------+
        5. | 25165824 |