-2

例子

byte b = 127;

(初始化为等于11111111)

现在我只关心位 1 和 0

我如何移位得到00000011

如果我是对的,我认为这被称为“屏蔽位”?

我尝试 b << 5 then 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;
}
4

1 回答 1

5
b & 0x03

将为您提供一个包含前两位的字节,其余位为零填充。

这是有效的,因为 0x03 是00000011二进制的,并且

11111111

00000011

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

于 2012-12-27T19:00:27.997 回答