十进制到十六进制的转换在 Linux 中有效,但在 Unix 中无效

十进制到十六进制的转换在 Linux 中有效,但在 Unix 中无效

我想将十进制数转换为十六进制数。我使用了命令:

printf '%X\n' 053698180

该命令在 Linux 服务器上运行得非常好。但在 UNIX 上尝试时抛出以下错误:

printf: Error converting 053698180
053698180

这里可能有什么问题?

另外,为了使其在 UNIX 和 Linux 上都能工作,这里可以进行的最小可能的修正是什么?

答案1

你没有告诉我们你的 Unix 和 shell 是什么。问题可能在于前导0,它指示printf将数字解释为八进制数,但事实并非如此(由于有 8 和 9 位数字)。

只需删除前导0.

相关内容