2

今天我发现了 '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

给出正确的结果。

这种行为有什么原因吗?

4

2 回答 2

2

你不是第一个被这个抓住的人。显然你需要在obase 之前 ibase设置:

echo "obase=10;ibase=16;AFBE" | bc
44990
于 2013-01-26T21:35:41.483 回答
2

显然,当它读取时bc使用你的:这就是为什么总是意味着“与”相同。ibaseobaseobase=10ibase

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

于 2013-01-26T21:35:42.600 回答