bit shift - Java位操作,删除(零)不感兴趣的位



示例

byte b = 127;

(initial to be = 11111111)

现在我只关心位1和0

我怎么做位移位得到00000011

我想这叫做"掩蔽位",如果我是对的吗?

我试过了b & lt; & lt;5然后b>> 5将其他位归零但是这是错误的

我的目标

switch ((myByte >> 3) & 3)
{
    case 3:
        resevered = true;
        break;
    case 2:
        open = true;
        break;
    case 1:
        SingleOnly = true;
        break;
    case 0:
        daulMode = true;
        break;
}

b & 0x03

将给你一个包含前两位的字节,其余的位为零。

之所以有效是因为0x03是二进制的00000011,而

11111111

00000011

将前六位置零,只留下剩下的两位。

最新更新