9.6. 位串函数和操作符 #
本节描述用于检查和操作位串的函数和操作符,也就是操作类型为 bit 和 bit varying 的值的函数和操作符。(虽然这些表中只提到了 bit 类型,但 bit varying 类型的值可以互换使用。)位串支持表 9.1 中显示的常用比较操作符,以及表 9.14 中显示的操作符。
表 9.14. 位串操作符
操作符 描述 示例 |
|---|
串接
|
按位与(输入的长度必须相等)
|
按位或(输入的长度必须相等)
|
按位异或(输入的长度必须相等)
|
按位非
|
按位左移(字符串长度被保留)
|
按位右移(字符串长度被保留)
|
一些可用于二进制字符串的函数也可用于位串,如表 9.15 中所示。
表 9.15. 位串函数
此外,还可以在整数值与 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),因此只会得到该整数的最低有效位。