Битовые функции¶
Введено в: v3.7.7
AQL предлагает некоторые функции побитового манипулирования и интерпретации для побитовой арифметики.
Эти функции могут работать с целыми числовыми значениями в диапазоне от 0 до 4294967295 (232 - 1), включая оба значения. Это позволяет рассматривать числа как наборы битов, включающие до 32 членов. Использование любой из битовых функций для чисел вне поддерживаемого диапазона заставит функцию вернуть null и зарегистрировать предупреждение.
Диапазон значений для битовых функций консервативно мал, поэтому при передаче входных/выходных значений битовых функций клиентским приложениям с числами неизвестной точности не должно происходить потери точности или ошибок округления.
BIT_AND()¶
BIT_AND(numbersArray) → result
And- объединяет числовые значения в numbersArray в одно числовое значение результата.
- numbersArray (массив): массив с числовыми входными значениями
- возвращает результат (число|null): результат объединения.
Функция ожидает массив с числовыми значениями в качестве входных данных. Значения в массиве должны быть числами, которые не должны быть отрицательными. Максимальное поддерживаемое значение входного числа 232 - 1. Значения входного числа вне допустимого диапазона заставят функцию вернуть null и выдать предупреждение. Любые значения null во входном массиве игнорируются.
BIT_AND(value1, value2) → result
Если два числа переданы как отдельные параметры функции BIT_AND(), она вернет побитовое значение и значение двух своих операндов. В качестве входных значений допускаются только числа в диапазоне от 0 до 232 - 1.
- значение1 (число): первый операнд
- значение2 (число): второй операнд
- возвращает результат (число|null): и-комбинированный результат
1 2 3 4 5 | |
BIT_CONSTRUCT()¶
BIT_CONSTRUCT(positionsArray) → result
Конструирует числовое значение, биты которого установлены в позициях, заданных в массиве.
- positionArray (массив): массив с позициями битов для установки (с нулевым базисом)
- возвращает результат (number|null): сгенерированное число.
В качестве входных данных функция ожидает массив с числовыми значениями. Значения в массиве должны быть числами, которые не должны быть отрицательными. Максимальное поддерживаемое значение входного числа - 31. При вводе значений чисел вне допустимого диапазона функция вернет null и выдаст предупреждение.
1 2 3 | |
BIT_DECONSTRUCT()¶
BIT_DECONSTRUCT(number) → positionsArray
Деконструирует числовое значение в массив с позициями его установленных битов.
- number (число): входное значение для деконструкции
- возвращает positionArray (array|null): массив с установленными позициями битов (на основе нулей).
Функция превращает числовое значение в массив с позициями всех установленных битов. Позиции в выходном массиве базируются на нулях. Входное значение должно быть числом от 0 до 232 - 1 (включительно). Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 | |
BIT_FROM_STRING()¶
BIT_FROM_STRING(bitstring) → число
Преобразует битовую строку (состоящую из цифр 0 и 1) в число.
Чтобы преобразовать число в битовую строку, смотрите BIT_TO_STRING().
- bitstring (строка): последовательность строк, состоящая из символов
0и1. - возвращает number (number|null): разобранное число.
Входное значение должно быть битовой строкой, состоящей только из символов 0 и 1. Битовая строка может содержать до 32 значащих бит, включая все старшие нули. Обратите внимание, что битовая строка не должна начинаться с 0b. Если битовая строка имеет неправильный формат, эта функция возвращает null и выдает предупреждение.
1 2 3 4 | |
BIT_NEGATE()¶
BIT_NEGATE(число, биты) → результат
Побитно отрицает биты в number, и сохраняет до bits битов в результате.
- number (число): число для отрицания
- bits (число): количество битов, которые нужно сохранить в результате (от 0 до 32)
- возвращает result (number|null): результирующее число, содержащее до bits значащих битов.
Входное значение должно быть числом от 0 до 232 - 1 (включительно). Количество битов должно быть от 0 до 32. Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 4 | |
BIT_OR()¶
BIT_OR(numbersArray) → result
Or- объединяет числовые значения в numbersArray в одно числовое значение результата.
- numbersArray (массив): массив с числовыми входными значениями
- возвращает результат (число|null): результат объединения в числовой результат.
Функция ожидает массив с числовыми значениями в качестве входных данных. Значения в массиве должны быть числами, которые не должны быть отрицательными. Максимальное поддерживаемое значение входного числа 232 - 1. Значения входного числа вне допустимого диапазона заставят функцию вернуть null и выдать предупреждение. Любые значения null во входном массиве игнорируются.
BIT_OR(value1, value2) → result
Если два числа переданы в качестве отдельных параметров функции BIT_OR(), она вернет побитовое или значение двух своих операндов. В качестве входных значений допускаются только числа в диапазоне от 0 до 232 - 1.
- значение1 (число): первый операнд
- значение2 (число): второй операнд
- возвращает результат (число|null): или-комбинированный результат
1 2 3 4 5 | |
BIT_POPCOUNT()¶
BIT_POPCOUNT(number) → result
Подсчитывает количество битов, установленных во входном значении.
- number (число): массив с числовыми входными значениями
- возвращает result (number|null): количество битов, установленных во входном значении.
Входное значение должно быть числом от 0 до 232 - 1 (включительно). Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 4 | |
BIT_SHIFT_LEFT()¶
BIT_SHIFT_LEFT(число, сдвиг, биты) → результат.
Побитовый сдвиг битов в числе влево и сохранение до битов битов в результате. Если биты переполняются из-за сдвига, они отбрасываются.
- number (число): число для сдвига
- shift (число): количество битов для сдвига (от 0 до 32)
- bits (число): количество битов, которые нужно оставить в результате (от 0 до 32)
- возвращает result (number|null): результирующее число, со значащими битами до bits.
Входное значение должно быть числом от 0 до 232 - 1 (включительно). Количество битов должно быть от 0 до 32. Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 4 | |
BIT_SHIFT_RIGHT()¶
BIT_SHIFT_RIGHT(число, сдвиг, биты) → результат
Побитовый сдвиг битов в числе вправо и сохранение до битов битов в результате. Если биты переполняются из-за сдвига, они отбрасываются.
- number (число): число для сдвига
- shift (число): количество битов для сдвига (от 0 до 32)
- bits (число): количество битов, которые нужно оставить в результате (от 0 до 32)
- возвращает result (number|null): результирующее число, со значащими битами до bits.
Входное значение должно быть числом от 0 до 232 - 1 (включительно). Количество битов должно быть от 0 до 32. Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 4 | |
BIT_TEST()¶
BIT_TEST(number, index) → result
Проверяет, установлено ли в позиции index число number.
- number (число): число для проверки
- index (число): индекс проверяемого бита (от 0 до 31)
- возвращает результат (boolean|null): установлен ли бит или нет.
Входное значение должно быть числом от 0 до 232 - 1 (включительно). Значение index должно быть от 0 до 31. Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 4 | |
BIT_TO_STRING()¶
BIT_TO_STRING(number) → bitstring
Преобразует числовое входное значение в битовую строку, состоящую из 0 и 1.
Чтобы преобразовать битовую строку в число, смотрите BIT_FROM_STRING().
- number (число): число для преобразования в строку
- возвращает bitstring (string|null): битовую строку, сгенерированную из входного значения.
Входное значение должно быть числом от 0 до 232 - 1 (включительно). Для любых других входных данных функция вернет null и выдаст предупреждение.
1 2 3 4 | |
BIT_XOR()¶
BIT_XOR(numbersArray) → result
Исключительно-или-объединяет числовые значения в numbersArray в одно числовое значение результата.
- numbersArray (массив): массив с числовыми входными значениями
- возвращает результат (число|null): результат xor-комбинации
Функция ожидает массив с числовыми значениями в качестве входных данных. Значения в массиве должны быть числами, которые не должны быть отрицательными. Максимальное поддерживаемое значение входного числа 232 - 1. Значения входного числа вне допустимого диапазона заставят функцию вернуть null и выдать предупреждение. Любые значения null во входном массиве игнорируются.
BIT_XOR(value1, value2) → result.
Если два числа переданы в качестве отдельных параметров функции BIT_XOR(), она вернет побитовое исключающее или значение двух своих операндов. В качестве входных значений допускаются только числа в диапазоне от 0 до 232 - 1.
- значение1 (число): первый операнд
- значение2 (число): второй операнд
- возвращает результат (число|null): результат xor-комбинации
1 2 3 4 5 | |