Github
来源:Presto
浏览 524
扫码
分享
2020-04-20 22:49:58
7.7. Bitwise Functions
bit_count
(x, bits) → bigint-
Count the number of bits set in
x
(treated as bits
-bit signedinteger) in 2’s complement representation:
- 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-
Returns the bitwise AND of
x
and y
in 2’s complement representation.
bitwise_not
(x) → bigint-
Returns the bitwise NOT of
x
in 2’s complement representation.
bitwise_or
(x, y) → bigint-
Returns the bitwise OR of
x
and y
in 2’s complement representation.
bitwise_xor
(x, y) → bigint-
Returns the bitwise XOR of
x
and y
in 2’s complement representation.
bitwise_shift_left
(x, shift, bits) → bigint-
Left shift operation on
x
(treated as bits
-bit integer)shifted by shift
.
SELECT bitwise_shift_left(7, 2, 4); – 12
SELECT bitwise_shift_left(7, 2, 64); – 28
bitwise_logical_shift_right
(x, shift, bits) → bigint-
Logical right shift operation on
x
(treated as bits
-bit integer)shifted by shift
.
SELECT bitwise_logical_shift_right(7, 2, 4); – 1
SELECT bitwise_logical_shift_right(-8, 2, 5); – 6
bitwise_arithmetic_shift_right
(x, shift) → bigint-
Arithmetic right shift operation on
x
shifted by shift
in 2’s complement representation.
SELECT bitwise_arithmetic_shift_right(-8, 2); – -2
SELECT bitwise_arithmetic_shift_right(7, 2); – 1
See also bitwise_and_agg()
and bitwise_or_agg()
.