PostgreSQL
9.6. Bit String Functions and Operators
This section describes functions and operators for examining and manipulating bit strings, that is values of the types bit
and bit varying
. Aside from the usual comparison operators, the operators shown in Table 9.13 can be used. Bit string operands of &
, |
, and #
must be of equal length. When bit shifting, the original length of the string is preserved, as shown in the examples.
Table 9.13. Bit String Operators
Operator | Description | Example | Result |
---|---|---|---|
`+ |
+` |
concatenation |
|
`+B'10001' |
B'011'+` |
|
|
|
bitwise AND |
|
|
`+ |
+` |
bitwise OR |
`+B'10001' |
B'01101'+` |
|
|
bitwise XOR |
|
|
|
bitwise NOT |
|
|
|
bitwise shift left |
|
|
|
bitwise shift right |
+
The following SQL-standard functions work on bit strings as well as character strings: length
, bit_length
, octet_length
, position
, substring
, overlay
.
The following functions work on bit strings as well as binary strings: get_bit
, set_bit
. When working with a bit string, these functions number the first (leftmost) bit of the string as bit 0.
In addition, it is possible to cast integral values to and from type bit
. Some examples:
44::bit(10) 0000101100
44::bit(3) 100
cast(-44 as bit(12)) 111111010100
'1110'::bit(4)::integer 14
Note that casting to just “[.quote]#bit”# means casting to bit(1)
, and so will deliver only the least significant bit of the integer.