如何将 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'
我需要将一个非常大的数字转换为十六进制形式(没有空格,没有任何内容,例如 8ac7230489e80001)。使用 printf
给出了超出范围的错误。
printf '%x\n' "24267339429148234667523"
-bash: printf: warning: 24267339429148234667523: Numerical result out of range
ffffffffffffffff
我尝试了其他方法(python),但似乎它们只提供一个字符串输出。我仍然需要它是一个数字。 是否可以像这样处理更大的数字?
您可以使用 bc
实用程序:
bc <<< 'obase=16;24267339429148234667523'