如何在java中生成0x00000000FFFFFF长掩码?

如何在java中生成0x00000000FFFFFF长掩码?,java,algorithm,bit-manipulation,Java,Algorithm,Bit Manipulation,由于签名扩展,上述操作无效并返回-1。因此,我想知道是否有一种方法可以仅在长数字为负数的情况下获得较低的32位。使用L后缀指定long文字:0x00000000ffffffffL也许0x00000000ffffffffL(注意末尾的L,这是long).这似乎很管用: final long mask = 0x00000000FFFFFFFFL; final long val = Long.MAX_VALUE; final long masked = val & mask; System.o

由于签名扩展,上述操作无效并返回-1。因此,我想知道是否有一种方法可以仅在长数字为负数的情况下获得较低的32位。

使用
L
后缀指定
long
文字:
0x00000000ffffffffL

也许
0x00000000ffffffffL
(注意末尾的
L
,这是
long
).

这似乎很管用:

final long mask = 0x00000000FFFFFFFFL;
final long val = Long.MAX_VALUE;
final long masked = val & mask;
System.out.println(masked);
输出:4294967295