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

问题描述 投票:0回答:2

当我在shell中输入->

$echo $(( 16#FF ))

输出是 "255",这是十六进制数 "0xFF "的十进制转换。

但当我试图将数字 "FF "转换为另一个类似的基数时。

$ echo $(( ffb5cd10#FF ))

我得到了以下错误:

"bash: ffb5cd10#FF : syntax error: invalid arithmetic operator (error token is "#FF ")"
terminal hex syntax-error decimal echo
2个回答
0
投票

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


0
投票

我想你的问题就出在这里。

"(错误标记是 "#FF")"

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

如果你把代码中的基数去掉,那么sintax可以返回预期的结果,就像这样。

$ echo $(( ( ffb5cd10# ))

© www.soinside.com 2019 - 2024. All rights reserved.