示例
byte b = 127;
(初始化为等于11111111)
现在我只关心第1和第0位
我怎么做位移得到00000011
我认为如果我是对的,这被称为“掩蔽位”?
我试过了 b<<五 然后 B个;>五 将其他位清零但这是错误的
我的目标
switch ((myByte >> 3) & 3)
{
case 3:
resevered = true;
break;
case 2:
open = true;
break;
case 1:
SingleOnly = true;
break;
case 0:
daulMode = true;
break;
}
答案 0 :(得分:5)
b & 0x03
将给出一个包含前两位的字节,其余位为零填充。
这是有效的,因为0x03是二进制的00000011
,而
11111111
和
00000011
将前六位归零,只留下剩余的两位。