有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

位操作Java位掩码范围

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

该值为:

0x0000000415B2C01E

因此,位51:12的值应为:

0x0000415B2C

我有点困惑,究竟如何提取那个范围,或者任何范围。我被告知只需左移12(值<;<;12)即可获得所需的位,但这给了我以下值:

0x415B2C01E000

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

如果有人能帮助我,我将不胜感激

谢谢


共 (1) 个答案

  1. # 1 楼答案

    移位和遮罩:

    answer = value >> 12 & 0xFFFFFFFFFFF;