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

时间:2013-03-06 00:52:42

标签: java algorithm bit-manipulation

由于符号扩展,上述功能无效并返回-1。因此,我想知道是否有办法只获得较低的32位,即使长数为负数。

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

或许0x00000000FFFFFFFFL(请注意最后的Llong的{​​{3}}。

答案 2 :(得分:2)

这似乎工作正常:

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

输出:4294967295