Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

PostgreSQL

Choisissez la catégorie, puis la rubrique :

9.6. Fonctions et opérateurs sur les chaînes de bits

Cette section décrit les fonctions et opérateurs d'examen et de manipulation des chaînes de bits, c'est-à-dire des valeurs de types bit et bit varying. En dehors des opérateurs de comparaison habituels, les opérateurs présentés dans le Tableau 9.10, « Opérateurs sur les chaînes de bits » peuvent être utilisés. Les opérandes de chaînes de bits utilisés avec &, | 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 montrent les exemples.

Tableau 9.10. Opérateurs sur les chaînes de bits

Opérateur Description Exemple Résultat
|| concaténation B'10001' || B'011' 10001011
& AND bit à bit B'10001' & B'01101' 00001
| OR bit à bit B'10001' | B'01101' 11101
# XOR bit à bit B'10001' # B'01101' 11100
~ NOT bit à bit ~ B'10001' 01110
<< décalage gauche bit à bit B'10001' << 3 01000
>> décalage droit bit à bit B'10001' >> 2 00100

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, overlay.

Les fonctions suivantes fonctionnent sur les chaînes de bits ainsi que sur les chaînes binaires : get_bit, set_bit. En travaillant sur des chaînes de bits, ces fonctions numérotent le premier bit (le plus à gauche) comme le bit 0.

De plus, il est possible de convertir des valeurs intégrales vers ou depuis le type bit. Quelques exemples :

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

Le transtypage « bit » signifie transtyper en bit(1) et, de ce fait, seul le bit de poids faible de l'entier est rendu.

[Note]

Note

Avant PostgreSQL™ 8.0, la conversion d'un entier en bit(n) copiait les n bits les plus à gauche de l'entier. Désormais, ce sont les n bits les plus à droite qui sont copiés. De plus, la conversion d'un entier en une chaîne de bits plus grande que l'entier lui-même étend l'entier, avec signature, vers la gauche.

Contacter le responsable de la rubrique PostgreSQL

Partenaire : Hébergement Web