例
byte b = 127;
Run Code Online (Sandbox Code Playgroud)
(初始化为等于11111111)
现在我只关心第1位和第0位
我如何转移得到00000011
如果我是对的,我认为这被称为"掩蔽位"?
我尝试了b << 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;
}
Run Code Online (Sandbox Code Playgroud)
b & 0x03
Run Code Online (Sandbox Code Playgroud)
将给出一个包含前两位的字节,其余位为零填充.
这是有效的,因为0x03是00000011
二进制的,和
11111111
Run Code Online (Sandbox Code Playgroud)
和
00000011
Run Code Online (Sandbox Code Playgroud)
将前六位归零,只留下剩下的两位.
归档时间: |
|
查看次数: |
1303 次 |
最近记录: |