?
This document uses PHP Chinese website manual Release
本節(jié)描述用于檢查和操作位串的函數(shù)和操作符,也就是操作類型為bit和bit varying 值的函數(shù)和操作符。除了常用的比較操作符之外,還可以使用Table 9-10顯示的 操作符&,|和#的位串操作數(shù)必須等長。在移位的時候,保留原始的位串長度(并以0填充),如例所示。
Table 9-10. 位串操作符
操作符 | 描述 | 示例 | 結果 |
---|---|---|---|
|| | 連接 | B'10001' || B'011' | 10001011 |
& | 位與 | B'10001' & B'01101' | 00001 |
| | 位或 | B'10001' | B'01101' | 11101 |
# | 位異或 | B'10001' # B'01101' | 11100 |
~ | 位非 | ~ B'10001' | 01110 |
<< | 位左移 | B'10001' << 3 | 01000 |
>> | 位右移 | B'10001' >> 2 | 00100 |
下面的SQL標準函數(shù)除了可以用于字符串之外,
也可以用于位串:length
,
bit_length
,
octet_length
,
position
,
substring
,
overlay
。
下面的函數(shù)使用位串以及二進制字符串:
get_bit
,
set_bit
。
當用于位串時,這些函數(shù)位數(shù)從字符串(最左邊)的第一位作為0位 。
另外,我們可以在整數(shù)和bit之間來回轉換。一些例子:
44::bit(10) 0000101100 44::bit(3) 100 cast(-44 as bit(12)) 111111010100 '1110'::bit(4)::integer 14
請注意,只是轉換為"bit"的意思是轉換成bit(1),因此只會轉換成整數(shù)的最低位。
Note: 在PostgreSQL8.0以前,把一個整數(shù)轉換成bit(n) 將拷貝整數(shù)的最左邊的n位,而現(xiàn)在是拷貝最右邊的n位。 還有,把一個整數(shù)轉換成比整數(shù)本身長的位串,就會擴展最左邊的位(非負數(shù)為0,負數(shù)為1)。