6.7. Bitwise Functions
-
bit_count
(x, bits) → bigint Count the number of bits set in
x
(treated asbits
-bit signed integer) 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
andy
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
andy
in 2’s complement representation.
-
bitwise_xor
(x, y) → bigint Returns the bitwise XOR of
x
andy
in 2’s complement representation.
-
bitwise_shift_left
(x, shift, bits) → bigint Left shift operation on
x
(treated asbits
-bit integer) shifted byshift
.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 asbits
-bit integer) shifted byshift
.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 byshift
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()
.