取C中的半字节的最后2位

时间:2013-07-04 10:23:59

标签: c bit-manipulation bitwise-operators

我有这个字节:10111011我希望分成2个半字节(msb和lsb)。
之后我想从lsb取最后2位(所以我想要{{ 1}}来自11) 我知道:

使用1011我得到msb(1001)
使用10011011 >> 4我得到lsb(1011)

现在我该如何从lsb 10011011 & 0xf获取11

3 个答案:

答案 0 :(得分:3)

同样:bits = lsb & 0x03

答案 1 :(得分:0)

前两位的位掩码是3,所以只需使用:

int val = x & 3;

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

对于上述值,它将是。

val = (x >> 4) & 3;

答案 2 :(得分:0)

你会这样做:

foo & 0x03

foo是您想要屏蔽的位模式。