bc: 为什么`ibase=16;奥基=10; FF` 返回 FF 而不是 255?

bc: 为什么`ibase=16;奥基=10; FF` 返回 FF 而不是 255?

我一直在使用bc二进制到十六进制、八进制到十进制等之间的数字转换。

在下面的示例中,我尝试将 16 进制(十六进制)数字转换为二进制、八进制和十进制。

我的前两次尝试没有任何问题。

$ echo 'ibase=16; obase=2; FF' | bc  
11111111
$ echo 'ibase=16; obase=8; FF' | bc 
377

但是当我尝试将 16 进制(十六进制)数字转换为 10 进制(十进制)时,我得到了错误的答案。答案应该是255

$ echo 'ibase=16; obase=10; FF' | bc 
FF

答案1

完成后ibase=16,进一步输入数字为十六进制,包括10obase=10其中代表十进制值 16。因此,可以使用新的输入基数(现在为十六进制)在之前设置 obase,也可以在之后设置:

$ echo 'obase=10; ibase=16; FF' | bc
255
$ echo 'ibase=16; obase=A; FF' | bc
255

相关内容