我想将十进制数转换为十六进制数。我使用了命令:
printf '%X\n' 053698180
该命令在 Linux 服务器上运行得非常好。但在 UNIX 上尝试时抛出以下错误:
printf: Error converting 053698180
053698180
这里可能有什么问题?
另外,为了使其在 UNIX 和 Linux 上都能工作,这里可以进行的最小可能的修正是什么?
答案1
你没有告诉我们你的 Unix 和 shell 是什么。问题可能在于前导0
,它指示printf
将数字解释为八进制数,但事实并非如此(由于有 8 和 9 位数字)。
只需删除前导0
.