Перейти к основному содержимому

bit_shift_right

Описание

Сдвигает двоичное представление числового выражения вправо на указанное количество битов.

Эта функция выполняет арифметический сдвиг вправо, при котором длина битов не изменяется, младший бит отбрасывается, а знаковый бит используется как старший бит. Например, сдвиг 10101 вправо на один бит дает 11010.

Синтаксис

bit_shift_right(value, shift)

Параметры

value: значение или числовое выражение для сдвига. Поддерживаемые типы данных: TINYINT, SMALLINT, INT, BIGINT и LARGEINT.

shift: количество битов для сдвига. Поддерживаемый тип данных — BIGINT.

Возвращаемое значение

Возвращает значение того же типа, что и value.

Примечания по использованию

  • Если любой входной параметр равен NULL, возвращается NULL.
  • Если shift меньше 0, возвращается 0.
  • Сдвиг value на 0 всегда дает исходное value.
  • Сдвиг 0 на любое shift всегда дает 0.
  • Если тип данных value является числовым, но не целым числом, это значение будет приведено к целому числу. См. Примеры.
  • Если тип данных value является строкой, значение будет приведено к целому числу, если это возможно. Например, строка "2.3" будет приведена к 2. Если значение нельзя привести к целому числу, оно будет обработано как NULL. См. Примеры.

Примеры

Используйте эту функцию для сдвига числовых значений.

SELECT bit_shift_right(2, 1);
+-----------------------+
| bit_shift_right(2, 1) |
+-----------------------+
| 1 |
+-----------------------+

SELECT bit_shift_right(2.2, 1);
+-------------------------+
| bit_shift_right(2.2, 1) |
+-------------------------+
| 1 |
+-------------------------+

SELECT bit_shift_right("2", 1);
+-------------------------+
| bit_shift_right('2', 1) |
+-------------------------+
| 1 |
+-------------------------+

SELECT bit_shift_right(-2, 1);
+------------------------+
| bit_shift_right(-2, 1) |
+------------------------+
| -1 |
+------------------------+

Ссылки