C ++操作顺序和模数

时间:2018-02-27 13:34:49

标签: c++

如何使用cmath解释25 % 8 - 9 / 2 => -3.5

是吗:

25% 8 = 1 ;
-9/2 = -4.5

操作顺序:

1 - 4.5 = -3.5

3 个答案:

答案 0 :(得分:3)

这不是关于操作的顺序,而是关于cmath。这是关于优先级,并且硬连线到C ++的语法。这里适用的基本规则是乘法和除法比加法和减法更紧密地绑定,因此像a*b+c*d这样的表达式被视为写成(a*b)+(c*d)。也就是说,a和b的乘积加到c和d的乘积中。 意味着将c添加到a和b的乘积中,然后将结果乘以d。

要将此应用于此处的示例(请记住,%只是另一种划分形式):

25 % 8 - 9 / 2

被视为已写入

(25 % 8) - (9 / 2)

25 % 8的值为1,9 / 2的值为4(不是4.5; 9和2是整数,因此这是整数除法)。结果是1 - 4,即-3

答案 1 :(得分:0)

最简单的方法就是试试吧。除此之外,您可以查看优先级表,如this one,以查看运算符相对于彼此的位置。在这种情况下,由于%运算符的优先级高于-运算符,因此首先执行,然后执行/,因为它也具有更高的优先级,因此您最终会使用{ {1}}作为等价表达式。由于这些都是整数,因此操作将在整数运算中进行,并给出(25 % 8) - (9 / 2)的结果。

答案 2 :(得分:-1)

Cmath只声明一组函数来计算常见的数学运算和其他变换。运算符优先级独立于库,如cmath。

但您可能正在寻找运营商优先级表:Documentation

在你的例子中是这样的(25%8) - (9/2) =>的 -3