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

Как отключить определенный бит в битовой маске?

В TSql, как вы отключите определенный бит в битовой маске, не проверяя, установлен ли бит или нет?

4b9b3361

Ответ 1

Нашел! Используйте и ~ как это...

UPDATE MyTable SET
        MyBitmask = MyBitmask & ~128 -- 8th bit
    WHERE MyID = 123

Оператор ~ переворачивает все биты (1s становится 0s и 0s становится 1s). Просто установите значение, которое вы переверните, на тот, который вы хотите отключить и использовать, и безопасно отключить только один конкретный бит, не проверяя, установлен ли бит.