-3

我有这个字节:10111011我想分成 2 个半字节(msb 和 lsb)。
之后,我想从 lsb 中获取最后 2 位(所以我想111011)。
我知道:

随着10011011 >> 4我得到 msb (1001)
随着10011011 & 0xf我得到 lsb (1011)

现在我该怎么做才能11从 lsb获取1011

4

3 回答 3

3

一样:bits = lsb & 0x03

于 2013-07-04T10:25:33.557 回答
0

前两位的位掩码为 3,因此只需使用:

int val = x & 3;

由于这些位已经在正确的位置,您不需要一些移位运算符。

对于上述值,它将是。

val = (x >> 4) & 3;
于 2013-07-04T10:26:29.393 回答
0

你会这样做:

foo & 0x03

foo您要屏蔽的位模式在哪里。

于 2013-07-04T10:32:26.537 回答