/
BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR

BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR

BITAND

Возвращает побитовое «И» двух чисел. Возвращаемое значение – одно целочисленное значение.

Числа округляются по принципу 99.4 -> 99, 99.5 -> 100.

Синтаксис

BITAND ( <Number1>, <Number2> )

где

  • <Number1> (обязательный атрибут) – первое число или ссылка на столбец;

  • <Number2> (обязательный атрибут) – второе число или ссылка на столбец.

Пример

Bitwise AND Example = BITAND(Table[Column1], Table[Column2])

Данная мера вычисляет побитовое "И" между двумя значениями из столбцов Column1 и Column2 таблицы Table. Она возвращает целое число, которое является результатом побитовой операции.

BITLSHIFT

Возвращает число, сдвинутое влево на указанное количество бит. Возвращаемое значение - одно целочисленное значение.

  • Числа округляются по принципу 99.4 -> 99, 99.5 -> 100.

  • Если Shift_Amount отрицательное значение, оно сместится в противоположном направлении. На практике следующие выражения возвращают тот же результат:
    BITLSHIFT ( A, B ) BITRSHIFT ( A, -B )

  • Если абсолютное значение Shift_Amount больше 64, вместо ошибки будет переполнение/недополнение. Ограничений на число нет, но результат может переполниться/не дополниться.

  • Если при проходе по nullable колонке значение сдвига будет null, то оно заменится на 0.

Синтаксис

BITLSHIFT ( <Number>, <ShiftAmount> )

где

  • <Number> (обязательный атрибут) – любое выражение, представляющее целое число.

  • <ShiftAmount> (обязательный атрибут) – любое выражение, которое представляет целое число как количество битов, на которое необходим сдвиг.

Пример

Shifted Sales = BITLSHIFT(SUM(Sales[TotalSales]), 2)

Данная мера выполняет побитовый сдвиг влево значения общей суммы продаж на 2 бита. Это может быть полезно в специфических сценариях, где требуется манипуляция двоичным представлением чисел. Сдвиг влево на 2 бита эквивалентно умножению на 4, так как каждый сдвиг влево на один бит удваивает значение.

BITRSHIFT

Возвращает число, сдвинутое вправо на указанное количество бит. Возвращается одно целочисленное значение.

  • Числа округляются по принципу 99.4 -> 99, 99.5 -> 100.

  • Если Shift_Amount отрицательное значение, оно сместится в противоположном направлении. На практике следующие выражения возвращают тот же результат:
    BITRSHIFT ( A, B ) BITLSHIFT ( A, -B )

  • Если абсолютное значение Shift_Amount больше 64, вместо ошибки будет переполнение/недополнение. Ограничений на число нет, но результат может переполниться/недополниться.

  • Если при проходе по nullable колонке значение сдвига будет null, то оно заменится на 0.

Синтаксис

BITRSHIFT ( <Number>, <ShiftAmount> )

где

  • <Number> (обязательный атрибут) – любое выражение, представляющее целое число.

  • <ShiftAmount> (обязательный атрибут) – любое выражение, которое представляет целое число как количество битов, на которое необходим сдвиг.

Пример

ShiftedValue := BITRSHIFT(SUM('Table'[NumericColumn]), 2)

Данная мера выполняет побитовый сдвиг вправо на 2 бита для значения, переданного в качестве аргумента. Это может быть полезно, например, для оптимизации хранения данных или выполнения специфических битовых операций.

BITOR

Возвращает побитовое «ИЛИ» двух чисел. Возвращаемое значение – одно целочисленное значение.

Синтаксис

BITOR ( <Number1>, <Number2> )

где

  • <Number1> (обязательный атрибут) – первое число или ссылка на столбец.

  • <Number2> (обязательный атрибут) – второе число или ссылка на столбец.

Пример

Данная мера выполняет операцию побитового “ИЛИ” (BITOR) над двумя суммами значений столбцов Flags1 и Flags2, взятыми из таблицы Table. Эта мера может быть использована для агрегирования состояний, представленных битами, и определения комбинированного состояния.

BITXOR

Возвращает побитовое «Исключающее ИЛИ» двух чисел. Возвращается одно целочисленное значение.

Синтаксис

BITXOR ( <Number1>, <Number2> )

где

  • <Number1> (обязательный атрибут) – первое число или ссылка на столбец.

  • <Number2> (обязательный атрибут) – второе число или ссылка на столбец.

Пример

Данная мера вычисляет побитовое исключающее “ИЛИ” (XOR) между двумя числовыми столбцами ColumnA и ColumnB в таблице MyTable.

  • SUM(MyTable[ColumnA]) – суммирует все значения в столбце ColumnA.

  • SUM(MyTable[ColumnB]) – суммирует все значения в столбце ColumnB.

  • BITXOR – применяет побитовое исключающее “ИЛИ” к результатам сумм.

Этот пример полезен, когда вам нужно использовать побитовые операции для анализа данных, например, при работе с флагами или битовыми масками.


Смотрите также

Поддерживаемые функции DAX
Математические операторы

На этой странице


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.

 

Related content

Поддерживаемые функции DAX
Поддерживаемые функции DAX
Read with this
BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR
BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR
More like this
CONTAINSSTRING
Read with this
Типы данных
Типы данных
More like this
Типы данных
Типы данных
More like this