unix bc命令和操作顺序

时间:2015-01-17 17:46:37

标签: unix math bc

我在mac上遇到基本unix“bc”命令的一个奇怪问题,我想确保我正确理解它。从手册页开始,它表示它尊重操作的顺序,我记得在我的学生时代,“我亲爱的阿姨姨妈”(乘法,除法,加法,减法)

在bc中评估以下字符串时,我得到了一个意外的值

5/2+4+6-8*4+5*7+8
23

但是,如果我通过并将上述操作顺序括起来,我会得到不同的结果:

(((5/2)+(4+6))-((8*4)+((5*7)+8)))
-63

我对bc命令或数学有基本的误解吗?

1 个答案:

答案 0 :(得分:2)

我们知道x-y + z不等于x-(y + z)。因此,你假设5/2 + 4 + 6-8 * 4 + 5 * 7 + 8等于(((5/2)+(4 + 6)) - ((8 * 4) +((5 * 7)8)))。此外,您需要更多地研究运算符优先级和除法中的截断。例如,5/2等于2.5被截断为2。 因此,5/2 + 4 + 6-8 * 4 + 5 * 7 + 8 = 2 + 4 + 6-32 + 35 + 8 = 23。 希望,它有所帮助