本節ではbit
型とbit varying
型の値であるビット文字列を調べたり操作するための関数と演算子について説明します。
(この表ではbit
型だけが言及されていますが、bit varying
型も同じように使用できます。)
ビット文字列は表 9.1で示す通常の比較演算子および表 9.14で言及している演算子もサポートします。
表9.14 ビット文字列演算子
演算子 説明 例 |
---|
結合
|
ビット単位のAND(入力は同じ長さでなければなりません)
|
ビット単位のOR(入力は同じ長さでなければなりません)
|
ビット単位の排他的論理和(入力は同じ長さでなければなりません)
|
ビット単位の否定
|
ビット単位の左シフト(文字列長は保存されます)
|
ビット単位の右シフト(文字列長は保存されます)
|
バイナリ文字列で利用可能な関数のいくつかは、表 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)
にキャストすることを意味することに注意してください。つまり、単に整数の最下位ビットのみが渡されることになります。