bc命令对obase = 10的行为很奇怪

时间:2013-01-26 21:19:31

标签: linux bc

今天我找到了'bc'linux命令,并在使用outputbase 10进行计算时发现了一个奇怪的行为。

echo "ibase=16;obase=9;AFBE" | bc
67638

echo "ibase=16;obase=11;AFBE" | bc
09 02 11 08

echo "ibase=16;obase=10;AFBE" | bc
AFBE

嗯,命令1和2是正确的,但第三个命令只是打印输入值。

echo "ibase=16;AFBE" | bc
44990

给出了正确的结果。

这种行为有什么理由吗?

2 个答案:

答案 0 :(得分:2)

你不是first person to be caught by this。 显然,您需要先设置obase ibase

echo "obase=10;ibase=16;AFBE" | bc
44990

答案 1 :(得分:2)

显然,bc在阅读ibase时会使用您的obase:这就是obase=10始终表示“与ibase相同”的原因。

在最新的示例中,您没有给obase=10(将值设置为十进制16),这就是为什么obase仍然是默认值(十进制10)。