PostgreSQL函数与操作符-位串函数和操作符描述用于检查和操作位串的函数和操作符,也就是操作类型为bit
和bit varying
的值的函数和操作符。除了常用的比较操作符之外,还可以使用下表里显示的操作符。&
、|
和#
的位串操作数必须等长。在移位的时候,保留原始的位串的的长度,如例子所示。
操作符 | 描述 | 例子 | 结果 |
---|---|---|---|
|| | 连接 | B'10001' || B'011' | 10001011 |
& | 按位与 | B'10001' & B'01101' | 1 |
| | 按位或 | B'10001' | B'01101' | 11101 |
# | 按位异或 | B'10001' # B'01101' | 11100 |
~ | 按位求反 | ~ B'10001' | 1110 |
<< | 按位左移 | B'10001' << 3 | 1000 |
>> | 按位右移 | B'10001' >> 2 | 100 |
?
下面的SQL标准函数除了可以用于字符串之外,也可以用于位串:?
、?length
、?bit_length
、?octet_length
、?position
、?substring
。overlay
下面的函数除了可以用于二进制串之外,也可以用于位串:?
、?get_bit
。 当使用于一个位串时,这些函数将串的第一(最左)位计数为位 0。set_bit
另外,我们可以在整数和bit
之间来回转换。一些例子:
44::bit(10) 0000101100
44::bit(3) 100
cast(-44 as bit(12)) 111111010100
'1110'::bit(4)::integer 14
?请注意,如果只是转换为“bit”,意思是转换成bit(1)
,因此只会转换整数的最低有效位。