Bitwise Functions
bit_count(x, bits) -> bigint
计算 ``x`` 中设置的位数(视为 ``bits`` 位有符号整数),以 2 的补码表示形式表示:
SELECT bit_count(9, 64); -- 2
SELECT bit_count(9, 8); -- 2
SELECT bit_count(-7, 64); -- 62
SELECT bit_count(-7, 8); -- 6
bitwise_and(x, y) -> bigint
以 2 的补码表示形式返回“x”和“y”的按位与。
bitwise_arithmetic_shift_right(x, shift) -> bigint
返回对 ``x`` 进行算术右移运算后,以 2 的补码表示形式移位 ``shift`` 的值。
``shift`` 不能为负数。
bitwise_left_shift(x, shift) -> [same as x]
返回 ``x`` 左移的值。
支持的 x 类型为:``TINYINT`` 、``SMALLINT`` 、``INTEGER`` 和 ``BIGINT``。
``shift`` 是一个 ``INTEGER``。
bitwise_logical_shift_right(x, shift, bits) -> bigint
返回对 ``x``(视为 ``bits`` 位整数)进行逻辑右移运算并移位 ``shift`` 的结果。
``shift`` 不能为负数。
bitwise_not(x) -> bigint
以 2 的补码表示形式返回“x”的按位非。
bitwise_or(x, y) -> bigint
以 2 的补码表示形式返回“x”和“y”的按位或。
bitwise_right_shift(x, shift) -> [same as x]
返回 ``x`` 的逻辑右移值。
支持的 x 类型为:``TINYINT``、``SMALLINT``、``INTEGER`` 和 ``BIGINT``。
``shift`` 是一个 ``INTEGER``。
bitwise_right_shift_arithmetic(x, shift) -> [same as x]
返回 ``x`` 的算术右移值。
支持的 x 类型为:``TINYINT``、``SMALLINT``、``INTEGER`` 和 ``BIGINT``。
``shift`` 是 一个 ``INTEGER``。
bitwise_shift_left(x, shift, bits) -> bigint
返回对 ``x``(视为 ``bits`` 位整数)进行左移运算后,移位 ``shift`` 的值。
``shift`` 不能为负数。
bitwise_xor(x, y) -> bigint
以 2 的补码表示形式返回“x”和“y”的按位异或。