使用 Linux 终端将十六进制数转换为十进制数

Converting hexadecimal number to decimal using Linux terminal

当我输入 shell ->

$echo $(( 16#FF ))

输出为“255”,是十六进制数“0xFF”的十进制转换

但是当我尝试将数字 "FF" 类似地转换为另一个基数时:

$ echo $(( ffb5cd10#FF ))

我收到以下错误:

"bash: ffb5cd10#FF : syntax error: invalid arithmetic operator (error token is "#FF ")"

所以这个命令的正确语法是 $echo $ (('base'#number )) 其中 base 实际上是你给 shell 的数字的基数,它会给出你十进制转换。这里,FF 是数字,16 是基数,FF 转换为 255..

我认为你的问题出在这里:

”(错误标记为“#FF”)”

你输入一个十六进制格式的数字,然后再次要求 return 一个十六进制。

这个语法,(我认为)可以 return 如果您从代码中省略基数,则可以得到预期的结果,如下所示:

$ 回显 $(( ffb5cd10# ))