9.6. Funções e operadores para cadeias de bits

Esta seção descreve as funções e operadores disponíveis para examinar e manipular cadeias de bits, ou seja, valores dos tipos bit e bit varying. Além dos operadores usuais de comparação, podem ser utilizados os operadores mostrados na Tabela 9-12. Devem ser do mesmo comprimento as cadeias de bits operandos de &, | e # . Ao ser feito o deslocamento de bits é preservado o comprimento original da cadeia de bits, conforme mostrado nos exemplos.

Tabela 9-12. Operadores para cadeias de bits

Operador Descrição Exemplo Resultado
|| concatenação B'10001' || B'011' 10001011
& AND bit a bit B'10001' & B'01101' 00001
| OR bit a bit B'10001' | B'01101' 11101
# XOR bit a bit B'10001' # B'01101' 11100
~ NOT bit a bit ~ B'10001' 01110
<< deslocamento à esquerda bit a bit B'10001' << 3 01000
>> deslocamento à direita bit a bit B'10001' >> 2 00100

As seguintes funções do padrão SQL funcionam em cadeias de bits, assim como em cadeias de caracteres: length, bit_length, octet_length, position, substring.

Além disso, é possível converter valores inteiros de e para o tipo bit. Alguns exemplos:

44::bit(10)                    0000101100
44::bit(3)                     100
cast(-44 as bit(12))           111111010100
'1110'::bit(4)::integer        14

Deve ser observado que converter para apenas um "bit" significa converter para bit(1) e, portanto, o resultado será apenas o bit menos significativo do inteiro.

Nota: Antes do PostgreSQL 8.0, a conversão de um inteiro para bit(n) copiava os n bits mais à esquerda do inteiro, enquanto agora copia os n bits mais à direita. Também, converter um inteiro para uma cadeia de bits mais larga que o próprio inteiro, estende o sinal para à esquerda.

SourceForge.net Logo CSS válido!