如何从int中移除位

本文关键字:int | 更新日期: 2023-09-27 17:59:27

我有以下代码:

    private enum Wall
    {
        Up = 0x0001,
        Down = 0x0010,
        Left = 0x0100,
        Right = 0x1000,
    }
private void Test()
{
    int walls = 0x1111;
    var wallsWithRightWallRemoved = walls | Wall.Right;
    // wallsWithRightWallRemoved  should now be this: 0x0111    
}

我有一个叫做walls的变量,0x1111基本上代表4个布尔值。我想从墙上删除右侧的墙,所以我从中减去它(walls|wall.right;),但我得到了"无法将运算符&应用于int类型的操作数"。基本上,我想最终得到一个包含0x0111的变量。

感谢

如何从int中移除位

wallsWithRightWallRemoved = walls & 0x0111;

或者将设置任何一个中的位。并且将在任意一个中取消设置为0的位,这就是您想要做的。

相关文章:
  • 没有找到相关文章