我在一个矩阵中有许多对象,它们将与其邻居的连接存储在一个整数变量中。
public static final int NONE = 0x00;
public static final int LEFT = 0x01;
public static final int TOP = 0x02;
public static final int RIGHT = 0x04;
public static final int BOTTOM = 0x08;
connections = LEFT | RIGHT | BOTTOM; // example usage
现在我希望能够将某些对象顺时针或逆时针旋转 90°。在上面的例子中,顺时针旋转应该相当于
connections = TOP | BOTTOM | LEFT;
1 的左/右位移似乎是显而易见的解决方案,但我不知道如何将位移限制为 LEFT (0x01) 到 BOTTOM (0x08) 的位。
我希望有一个人可以帮助我。当谈到位操作时,我迷路了。