0

由于符号扩展,上述方法不起作用并返回 -1。所以我想知道是否有办法只获得低 32 位,即使长数是负数。

4

3 回答 3

7

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

于 2013-03-06T00:54:17.837 回答
3

也许0x00000000FFFFFFFFL(注意L最后的,它是整数类型的后缀long)。

于 2013-03-06T00:54:24.537 回答
2

这似乎工作得很好:

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

输出:4294967295

于 2013-03-06T00:56:15.220 回答