如何将 bash 中的大十进制转换为十六进制?

How to convert a big decimal to hex in bash?

我需要将一个非常大的数字转换为十六进制形式(没有空格,没有任何内容,例如 8ac7230489e80001)。使用 printf 给出了超出范围的错误。

printf '%x\n' "24267339429148234667523"

-bash: printf: warning: 24267339429148234667523: Numerical result out of range
ffffffffffffffff

我尝试了其他方法(python),但似乎它们只提供一个字符串输出。我仍然需要它是一个数字。 是否可以像这样处理更大的数字?

您可以使用 bc 实用程序:

bc <<< 'obase=16;24267339429148234667523'