Java位掩码范围
我需要从现有的long中提取精确的位范围,特别是从64位值中提取51:12位 该值为:Java位掩码范围,java,bit-manipulation,bit-shift,bits,Java,Bit Manipulation,Bit Shift,Bits,我需要从现有的long中提取精确的位范围,特别是从64位值中提取51:12位 该值为: 0x0000000415B2C01E 因此,位51:12的值应为: 0x0000415B2C 我有点困惑,究竟如何提取那个范围,或者任何范围。我被告知只需左移12(值shift和mask: answer = value >> 12 & 0xFFFFFFFFFFF; 移位和遮罩: answer = value >> 12 & 0xFFFFFFFFFFF; 右移,而
0x0000000415B2C01E
因此,位51:12的值应为:
0x0000415B2C
我有点困惑,究竟如何提取那个范围,或者任何范围。我被告知只需左移12(值shift和mask:
answer = value >> 12 & 0xFFFFFFFFFFF;
移位和遮罩:
answer = value >> 12 & 0xFFFFFFFFFFF;
右移,而不是左移,将使51:12成为最低有效位右移,而不是左移,将使51:12成为最低有效位应为
answer=value>>12&0x0000007fffffff;
应为answer=value>>12&0x0000007fffffff;