String.format()和Java中的十六进制数

8 浏览
0 Comments

String.format()和Java中的十六进制数

我正在试图弄清楚为什么String.format()的行为如此。

背景:系统编程课程,编写汇编器。

在目标文件中有一个5位十六进制字段,我正在根据一个值创建它。

尝试使用:String.format("%05X", decInt);

对于正数,这个方法按预期工作

(11 -> 0000B)

然而,对于负数,它失败了

(-1 -> FFFFFFFF 而不是 FFFFF)

我猜我可以只取最后5个字符的子字符串,但我仍然想弄清楚为什么它会这样行为。

0