代码之家  ›  专栏  ›  技术社区  ›  skolima

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

  •  21
  • skolima  · 技术社区  · 15 年前

    在TSQL中,如何在不检查位是否设置的情况下关闭位掩码中的特定位?

    1 回复  |  直到 15 年前
        1
  •  36
  •   skolima    15 年前

    找到它了!像这样使用…

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

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