我试图弄清楚为什么 String.format()
的行为方式如此。
上下文:系统编程类,编写汇编程序。
目标文件中有一个 5 个字符的十六进制字段,我是从一个值创建的。
尝试使用:String.format("%05X", decInt);
这适用于正数
(11 -> 0000B
)
但是它对负数失败
(-1 -> FFFFFFFF
而不是 FFFFF
)
我想我可以只取最后 5 个字符的子字符串,但我仍然想弄清楚它为什么会这样。
最佳答案
格式中使用的宽度始终是最小宽度。在这种情况下,我建议不要使用子字符串操作:
String.format("%05X", decInt & 0xFFFFF);
https://stackoverflow.com/questions/9610254/