如何从int中删除一个位?

时间:2016-07-31 17:33:40

标签: c#

我有以下代码:

    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    
}

我有一个名为wall的变量,其中0x1111基本上代表4个布尔值。从墙壁上我想要移除右墙,所以我从它中减去它(墙壁| Wall.Right;),但我得到"不能应用运算符&到int"类型的操作数。 基本上我想得到一个包含0x0111的变量。

谢谢

1 个答案:

答案 0 :(得分:0)

wallsWithRightWallRemoved = walls & 0x0111;

或者将设置位于其中的位。并且将取消设置为0的位,这是你想要做的。