理解运算符的操作

来源:互联网 发布:永恒之柱 知乎 编辑:程序博客网 时间:2024/06/05 02:43
在数学中,运算是一种数学运算,它包含零或多个输入值(称为操作数),以产生输出值。常用操作(如加法)使用表示操作的特殊符号(如+)。这些符号称为运算符。编程人员的工作方式相同,但名称可能并不总是符号。运营商的工作类似于函数,输入参数并返回一个值,但它们更简明。例如,4 + 2 * 3是读比添加更容易(4,多(2, 3))!


为了正确地评估表达式,如4 + 2 * 3,我们必须理解运算符的操作,以及正确地应用它们的顺序。运算符在复合表达式中计算的顺序称为运算符优先级。使用正常的数学优先规则(在乘法之前,先解决乘法),我们知道上面的表达式应该求值为4 +(2×3),生成值10。


在C++中,当编译器遇到一个表达式,它必须分析和确定的表达应该如何进行评估。为了帮助这一点,所有操作符都被赋予了优先级。那些优先级最高的人首先被评估。您可以在下面的表中看到乘法和除法(优先级5)比加法和减法具有更高的优先级(优先级6)。编译器使用这些级别决定如何评估它遇到的表达式。

234567891011121314// note: exp must be non-negativeint pow(int base, int exp){    int result = 1;    while (exp)    {        if (exp & 1)            result *= base;        exp >>= 1;        base *= base;    }     return result;}

如果您还不了解这个函数的所有部分,请不要担心。只要小心溢出整数结果,如果两个参数都很大,可能会很快发生。


测验


1)从日常数学中知道,括号内的表达式首先得到求值。例如,在表达式(2 + 3)* 4中,首先对(2 + 3)部分求值。


对于这个练习,你将得到一组没有括号的表达式。使用运算符的优先级和结合性上面表中的规则,添加括号每个表达清楚编译器如何将计算表达式。


提示:使用上面表中的模式列来确定操作符是一元(有一个操作数)还是二进制(有两个操作数)。复习第1.5部分——如果你需要复习一下一元运算符和二进制运算符,请先看一下运算符。

原创粉丝点击