9.6. Fonctions et op�rateurs pour les cha�nes de bits

Cette section d�crit les fonctions et op�rateurs pour examiner et manipuler les cha�nes de bits, qui sont des valeurs du type bit et bit varying. En dehors des op�rateurs de comparaison habituels, les op�rateurs montr�s dans Tableau 9-10 peuvent �tre utilis�s. Les op�randes de cha�nes de bits &, | et # doivent �tre de m�me longueur. Lors d'un d�calage de bits, la longueur originale de la cha�ne est pr�serv�e comme le montre les exemples.

Tableau 9-10. Op�rateurs sur les cha�nes de bits

Op�rateurDescriptionExempleR�sultat
|| concat�nationB'10001' || B'011'10001011
& AND bit � bitB'10001' & B'01101'00001
| OR bit � bitB'10001' | B'01101'11101
# XOR bit � bitB'10001' # B'01101'11100
~ NOT bit � bit~ B'10001'01110
<< d�calage gauche bit � bitB'10001' << 301000
>> d�calage droit bit � bitB'10001' >> 200100

Les fonctions SQL suivantes fonctionnent sur les cha�nes de bits ainsi que sur les cha�nes de caract�res : length, bit_length, octet_length, position, substring.

De plus, il est possible de convertir des valeurs int�grales en ou � partir du type bit. Quelque exemples :

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

Notez que la conversion de <<�bit�>> signifie la conversion de bit(1) et, du coup, il d�livrera seulement le bit de poids faible de l'entier.

Note�: Avant PostgreSQL 8.0, convertir une entier en bit(n) aurait copi� les n bits les plus � gauche de l'entier alors que, maintenant, il copie les n bits les plus � droite. De plus, convertir un entier en une cha�ne de bits d'une largeur plus grande que l'entier lui-m�me changera le signe c�t� gauche.