GoogleSQL for BigQuery supports the following bit functions.
Function list
Name | Summary |
---|---|
BIT_AND | Performs a bitwise AND operation on an expression. For more information, see Aggregate functions. |
BIT_COUNT | Gets the number of bits that are set in an input expression. |
BIT_OR | Performs a bitwise OR operation on an expression. For more information, see Aggregate functions. |
BIT_XOR | Performs a bitwise XOR operation on an expression. For more information, see Aggregate functions. |
BIT_COUNT
BIT_COUNT(expression)
Description
The input, expression
, must be an integer or BYTES
.
Returns the number of bits that are set in the input expression
. For signed integers, this is the number of bits in two's complement form.
Return Data Type
INT64
Example
SELECT a, BIT_COUNT(a) AS a_bits, FORMAT("%T", b) as b, BIT_COUNT(b) AS b_bits FROM UNNEST([ STRUCT(0 AS a, b'' AS b), (0, b'\x00'), (5, b'\x05'), (8, b'\x00\x08'), (0xFFFF, b'\xFF\xFF'), (-2, b'\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFE'), (-1, b'\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF'), (NULL, b'\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF') ]) AS x; /*-------+--------+---------------------------------------------+--------* | a | a_bits | b | b_bits | +-------+--------+---------------------------------------------+--------+ | 0 | 0 | b"" | 0 | | 0 | 0 | b"\x00" | 0 | | 5 | 2 | b"\x05" | 2 | | 8 | 1 | b"\x00\x08" | 1 | | 65535 | 16 | b"\xff\xff" | 16 | | -2 | 63 | b"\xff\xff\xff\xff\xff\xff\xff\xfe" | 63 | | -1 | 64 | b"\xff\xff\xff\xff\xff\xff\xff\xff" | 64 | | NULL | NULL | b"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" | 80 | *-------+--------+---------------------------------------------+--------*/