本节描述用于检查和操作位串(即 bit 和 bit varying 类型的值)的函数和运算符。(虽然这些表中只提到了 bit 类型,但 bit varying 类型的值可以互换使用。)位串支持 表 9.1 中所示的常用比较运算符,以及 表 9.14 中所示的运算符。
表 9.14. 位串运算符
|
运算符 描述 示例 |
|---|
|
连接
|
|
按位与(输入必须具有相同的长度)
|
|
按位或(输入必须具有相同的长度)
|
|
按位异或(输入必须具有相同的长度)
|
|
按位非
|
|
按位左移(字符串长度保持不变)
|
|
按位右移(字符串长度保持不变)
|
一些可用于二进制字符串的函数也可用于位串,如 表 9.15 所示。
表 9.15. 位串函数
此外,还可以将整数值转换为 bit 类型,或从 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),因此只返回整数的最低有效位。