今天我找到了'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
给出了正确的结果。
这种行为有什么理由吗?
答案 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)。