将十六进制数转换为十进制,出现错误

时间:2018-12-07 14:13:46

标签: terminal hex syntax-error decimal echo

当我在shell中键入-> $ echo $(((16#FF))

输出为“ 255”,实际上是十六进制数字“ 0x16”的十进制转换。

但是当我尝试以类似方式转换十六进制数“ 0xffb5cd10”时,即-> $ echo $(((ffb5cd10#FF))

我收到错误->

“ bash:ffb5cd10#FF:语法错误:无效的算术运算符(错误标记为” #FF“)”

2 个答案:

答案 0 :(得分:0)

因此,此命令的正确语法是$ echo $((''base'#number)),其中base实际上是您赋予外壳程序的数字的底数,它将为您提供十进制转换。在这里,FF是数字,16是基数,FF转换为255。

答案 1 :(得分:0)

我认为您的问题在这里:

“(错误令牌为” #FF“)”

您以十六进制格式输入数字,然后要求再次返回十六进制。

如果您从代码中省略了基数,那么(我认为)正弦函数可以返回预期结果,如下所示:

$ echo $(((ffb5cd10#))