Как вы выключаете определенный бит в битовой маске? - PullRequest
21 голосов
/ 27 апреля 2010

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

1 Ответ

37 голосов
/ 27 апреля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...