本节描述用于检查和操作位串的函数和操作符,也就是操作类型为bit
和bit varying
的值的函数和操作符。 (虽然这些表中只提到了bit
类型,但bit varying
类型的值可以互换使用),位字符串支持比较操作符表中显示的常用比较操作符,就像位串操作符表中显示的操作符。
位串操作符
连接
|
按位与(输入的长度必须相等)
|
按位或 (输入的长度必须相等)
|
按位异或 (输入的长度必须相等)
|
按位求反
|
按位左移(字符串长度被保留)
|
按位右移(字符串长度被保留)
|
一些可用于二进制字符串的函数也可用于位字符串,如位字符串函数表中所示。
位字符串函数
返回位字符串中的位数。
|
返回位字符串中的位数。
|
返回位字符串中的字节数。
|
替换从
|
按返回指定
|
如果指定了起始位,则提取从
|
从位字符串中提取第
|
将位字符串中的第
|
另外,我们可以在整数和bit
之间来回转换。 将一个整数转换为bit(n)
会复制最右边的n
位。 将一个整数转换为比整数本身更宽的位字符串宽度将在左边进行符号扩展。一些例子:
44::bit(10) 0000101100
44::bit(3) 100
cast(-44 as bit(12)) 111111010100
'1110'::bit(4)::integer 14
请注意,如果只是转换为“bit”,意思是转换成bit(1)
,因此只会转换整数的最低有效位。