ClickHouse/docs/ru/query_language/functions/bit_functions.md
Ivan Blinkov 2e1f6bc56d
[experimental] add "es" docs language as machine translated draft (#9787)
* replace exit with assert in test_single_page

* improve save_raw_single_page docs option

* More grammar fixes

* "Built from" link in new tab

* fix mistype

* Example of include in docs

* add anchor to meeting form

* Draft of translation helper

* WIP on translation helper

* Replace some fa docs content with machine translation

* add normalize-en-markdown.sh

* normalize some en markdown

* normalize some en markdown

* admonition support

* normalize

* normalize

* normalize

* support wide tables

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* lightly edited machine translation of introdpection.md

* lightly edited machhine translation of lazy.md

* WIP on translation utils

* Normalize ru docs

* Normalize other languages

* some fixes

* WIP on normalize/translate tools

* add requirements.txt

* [experimental] add es docs language as machine translated draft

* remove duplicate script

* Back to wider tab-stop (narrow renders not so well)
2020-03-21 07:11:51 +03:00

5.1 KiB
Raw Blame History

Битовые функции

Битовые функции работают для любой пары типов из UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64.

Тип результата - целое число, битность которого равна максимальной битности аргументов. Если хотя бы один аргумент знаковый, то результат - знаковое число. Если аргумент - число с плавающей запятой - оно приводится к Int64.

bitAnd(a, b)

bitOr(a, b)

bitXor(a, b)

bitNot(a)

bitShiftLeft(a, b)

bitShiftRight(a, b)

bitTest

Принимает любое целое число и конвертирует его в двоичное число, возвращает значение бита в указанной позиции. Отсчет начинается с 0 справа налево.

Синтаксис

SELECT bitTest(number, index)

Параметры

  • number целое число.
  • index position of bit.

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

Возвращает значение бита в указанной позиции.

Тип: UInt8.

Пример

Например, число 43 в двоичной системе счисления равно: 101011.

Запрос:

SELECT bitTest(43, 1)

Ответ:

┌─bitTest(43, 1)─┐
│              1 │
└────────────────┘

Другой пример:

Запрос:

SELECT bitTest(43, 2)

Ответ:

┌─bitTest(43, 2)─┐
│              0 │
└────────────────┘

bitTestAll

Возвращает результат логической конъюнкции (оператор AND) всех битов в указанных позициях. Отсчет начинается с 0 справа налево.

Бинарная конъюнкция:

0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1

Синтаксис

SELECT bitTestAll(number, index1, index2, index3, index4, ...)

Параметры

  • number целое число.
  • index1, index2, index3, index4 позиция бита. Например, конъюнкция для набора позиций index1, index2, index3, index4 является истинной, если все его позиции истинны index1index2index3index4.

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

Возвращает результат логической конъюнкции.

Тип: UInt8.

Пример

Например, число 43 в двоичной системе счисления равно: 101011.

Запрос:

SELECT bitTestAll(43, 0, 1, 3, 5)

Ответ:

┌─bitTestAll(43, 0, 1, 3, 5)─┐
│                          1 │
└────────────────────────────┘

Другой пример:

Запрос:

SELECT bitTestAll(43, 0, 1, 3, 5, 2)

Ответ:

┌─bitTestAll(43, 0, 1, 3, 5, 2)─┐
│                             0 │
└───────────────────────────────┘

bitTestAny

Возвращает результат логической дизъюнкции (оператор OR) всех битов в указанных позициях. Отсчет начинается с 0 справа налево.

Бинарная дизъюнкция:

0 OR 0 = 0 0 OR 1 = 1 1 OR 0 = 1 1 OR 1 = 1

Синтаксис

SELECT bitTestAny(number, index1, index2, index3, index4, ...)

Параметры

  • number целое число.
  • index1, index2, index3, index4 позиции бита.

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

Возвращает результат логической дизъюнкции.

Тип: UInt8.

Пример

Например, число 43 в двоичной системе счисления равно: 101011.

Запрос:

SELECT bitTestAny(43, 0, 2)

Ответ:

┌─bitTestAny(43, 0, 2)─┐
│                    1 │
└──────────────────────┘

Другой пример:

Запрос:

SELECT bitTestAny(43, 4, 2)

Ответ:

┌─bitTestAny(43, 4, 2)─┐
│                    0 │
└──────────────────────┘

Оригинальная статья