如何在位掩码中关闭特定位?

时间:2010-04-26 23:40:20

标签: tsql

在TSql中,如何关闭位掩码中的特定位而不必检查该位是否设置?

2 个答案:

答案 0 :(得分:36)

发现它!使用& 〜喜欢这个...

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

〜运算符翻转所有位(1变为0,0变为1)。只需将您要翻转的值设置为要关闭的值,然后使用&安全地关闭一个特定的位而不必检查该位是否已设置。

答案 1 :(得分:1)

您还可以使用: MyBitmask&=〜128