从bitshift中检索元素

时间:2012-06-18 02:52:22

标签: java bit-manipulation

我如何从“i”中检索“face”?

int i = (id | (face << 16) | (type << 18))

谢谢!

2 个答案:

答案 0 :(得分:1)

你不会,除非你可以保证它只有2位宽,并且id只有16位宽,在这种情况下你所要做的就是右移和掩码。这是一个棘手的问题吗?

答案 1 :(得分:1)

因此,考虑到id只有16位宽且面只有2位宽的限制,请使用:

face = (i >> 16 ) & 3