Тип результата - целое число, битность которого равна максимальной битности аргументов. Если хотя бы один аргумент знаковый, то результат - знаковое число. Если аргумент - число с плавающей запятой - оно приводится к Int64.
Принимает любое целое число и конвертирует его в [двоичное число](https://en.wikipedia.org/wiki/Binary_number), возвращает значение бита в указанной позиции. Отсчет начинается с 0 справа налево.
Например, число 43 в двоичной системе счисления равно: 101011.
Запрос:
```sql
SELECT bitTest(43, 1)
```
Ответ:
```text
┌─bitTest(43, 1)─┐
│ 1 │
└────────────────┘
```
Другой пример:
Запрос:
```sql
SELECT bitTest(43, 2)
```
Ответ:
```text
┌─bitTest(43, 2)─┐
│ 0 │
└────────────────┘
```
## bitTestAll {#bittestall}
Возвращает результат [логической конъюнкции](https://en.wikipedia.org/wiki/Logical_conjunction) (оператор AND) всех битов в указанных позициях. Отсчет начинается с 0 справа налево.
-`index1`, `index2`, `index3`, `index4`– позиция бита. Например, конъюнкция для набора позиций `index1`, `index2`, `index3`, `index4` является истинной, если все его позиции истинны `index1` ⋀ `index2` ⋀ `index3` ⋀ `index4`.
**Возвращаемое значение**
Возвращает результат логической конъюнкции.
Тип: `UInt8`.
**Пример**
Например, число 43 в двоичной системе счисления равно: 101011.
Запрос:
```sql
SELECT bitTestAll(43, 0, 1, 3, 5)
```
Ответ:
```text
┌─bitTestAll(43, 0, 1, 3, 5)─┐
│ 1 │
└────────────────────────────┘
```
Другой пример:
Запрос:
```sql
SELECT bitTestAll(43, 0, 1, 3, 5, 2)
```
Ответ:
```text
┌─bitTestAll(43, 0, 1, 3, 5, 2)─┐
│ 0 │
└───────────────────────────────┘
```
## bitTestAny {#bittestany}
Возвращает результат [логической дизъюнкции](https://en.wikipedia.org/wiki/Logical_disjunction) (оператор OR) всех битов в указанных позициях. Отсчет начинается с 0 справа налево.