Подтвердить что ты не робот

Операции с биллированием в T-SQL

У меня есть битмаскированное поле int в моей базе данных. Обычно я управляю им с помощью кода С#, но теперь мне нужно перевернуть бит в маске с помощью T-SQL

Как выполнить следующее:

Бит, который я хочу перевернуть: 1 < 8 (256)

Значение маски перед переходом: 143

Значение маски после перевертывания: 399

Это можно сделать без битовых операторов, которые отсутствуют в T-SQL, правильно?

4b9b3361

Ответ 1

Использовать XOR:

SELECT value ^ 256

Итак, в вашем случае SELECT 143 ^ 256 действительно вернет 399. Если вы хотите также передать экспоненту:

SELECT value ^ POWER(2, power)

Ответ 2

TSql Побитовые операторы можно найти здесь, и хорошая статья о том, как их использовать, здесь