0

上記は機能せず、符号拡張のために-1を返します。したがって、長い数値が負の場合でも、下位32ビットのみを取得する方法があるかどうか疑問に思います。

4

3 に答える 3

7

接尾辞を使用して、リテラルLを指定します。long0x00000000ffffffffL

于 2013-03-06T00:54:17.837 に答える
3

おそらく(末尾のに0x00000000FFFFFFFFL注意してください。これはの整数型の接尾辞です)。Llong

于 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 に答える