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

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

上下文:系统编程类,编写汇编程序。

目标文件中有一个 5 个字符的十六进制字段,我是从一个值创建的。

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

这适用于正数 (11 -> 0000B) 但是它对负数失败 (-1 -> FFFFFFFF 而不是 FFFFF)

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

最佳答案

格式中使用的宽度始终是最小宽度。在这种情况下,我建议不要使用子字符串操作:

  String.format("%05X", decInt & 0xFFFFF);

https://stackoverflow.com/questions/9610254/

相关文章:

java - 如何从 Java 中的输入文本中删除标点符号?

c# - 使用c#的两个小数位

javascript - 在 Javascript 中解析 ISO 8601 日期

javascript - ".000Z"的 "yyyy-mm-ddT00:00:00.000Z"是什

c++ - 使用 C++ 输出运算符打印前导零?

xml - XML 中的引号。单人还是双人?

c# - DataContractSerializer 创建的 XML 格式

javascript - 最好的 JavaScript 日期解析器和格式化程序?

c# - C# 有自动代码格式化程序吗?

intellij-idea - 启用/禁用 IntelliJ 的花哨≠(不等于)运算符