0

我正在将 C 代码移植到 xtend,并且我有一个 32 位整数。由于 Java 的 Integer 的最大值为0x7FFFFFFF,我决定使用 Long ,因为我需要0xFFFFFFFF.

当我打印出来时,

Long value = 0xFFFFFFFFFFFFFFFF;
String::Format("0x%08X", value);

我得到了output: 0xFFFFFFFFFFFFFFFF. 我期望只得到0xFFFFFFFF. 为了摆脱领先的 Fs,我尝试这样做:

value.bitwiseAnd(0x00000000FFFFFFFF)

但输出仍然相同。如何格式化它以String::Format使其不会显示第一个FFFFFFFF?我只需要较低的 32 位。

4

1 回答 1

1

尝试这个:

BigInteger in = new BigInteger("FFFFFFFFFFFFFFFF", 16);        
System.out.println(String.format("%.8s", String.format("%x", in)));
于 2013-12-11T07:59:11.623 回答