0

我需要从现有的 long 中提取精确的位范围,特别是我需要从 64 位值中提取位 51:12。

值为:

0x0000000415B2C01E

所以位 51:12 的值应该是:

0x0000415B2C

对于如何实际提取该范围或任何范围,我有点困惑。我被告知只需左移 12(值 << 12)即可获得我需要的位,但这给了我以下值:

0x415B2C01E000

现在我可能完全误解了位移的工作原理,但我无法理解如何提取位范围。我在上面找到了很多现有的东西,但我现在对此更加困惑。

如果有人可以帮助我,那将不胜感激。

谢谢

4

1 回答 1

3

移位和掩码:

answer = value >> 12 & 0xFFFFFFFFFFF;
于 2013-03-18T16:01:01.993 回答