Иллюстрированный самоучитель по PostgreSQL

Числовые операторы

Двоичные операторы

Двоичные операторы выполняют поразрядные операции с битовыми последовательностями или целыми числами, что обычно приводит к изменению их значений. Двоичные операторы PostgreSQL перечислены в табл. 5.6.

Таблица 5.6. Двоичные операторы.

Оператор Синтаксис Описание
& а & b Поразрядная конъюнкция двоичных представлений а и b (которые могут быть заданы в виде целых чисел)
| а | b Поразрядная дизъюнкция двоичных представлений а и b (которые могут быть заданы в виде целых чисел)
# а # b Поразрядная операция исключающей дизъюнкции двоичных представлений а и b (которые могут быть заданы в виде целых чисел)
- -b Поразрядное отрицание, возвращает инвертированную битовую последовательность b
<< b << n Сдвиг b влево на n разрядов
>> b >> n Сдвиг b вправо на n разрядов

В листинге 5.13 приведен пример сдвига числа и его двоичного представления на два разряда вправо оператором ". Кроме того, в нем используется функция преобразования битовой последовательности в целочисленный тип bitten nt4(), описанная в разделе "Функции".

Листинг 5.13. Сдвиг битовых последовательностей.

booktown=# SELECT b'1000' >> 2 AS "8 SHIFTed right".
booktown-# Mttoint4(b'1000' >> 2) AS integer.
booktown-# 8 >> 2 AS likewise;
8 SHIFTed right | integer | likewise
0010 I 2 I 2
(1 row)

Примечание
При сдвиге битовых последовательностей исходная длина строки не изменяется, а разряды, выходящие за левый или правый край последовательности, отсекаются. При использовании операторов &, | или # битовые операнды должны иметь одинаковую длину
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.