- 算术表达式
算术表达式
算术表达式由以下运算符构成:
| 运算符 | 描述 | 类型 | 操作数类型 | 优先级 |
|---|---|---|---|---|
| +X | +X | 单目 | 混合 | 1 |
| -X | -X | 单目 | 混合 | 1 |
| XY | XY | 双目 | 混合 | 2 |
| X/Y | X/Y(浮点除法) | 双目 | 混合 | 2 |
| XdivY | X整除Y | 双目 | 整数 | 2 |
| XremY | X除以Y的余数 | 双目 | 整数 | 2 |
| XbandY | X与Y的位与 | 双目 | 整数 | 2 |
| X+Y | X+Y | 双目 | 混合 | 3 |
| X-Y | X-Y | 双目 | 混合 | 3 |
| XborY | X与Y位或 | 双目 | 整数 | 3 |
| XbxorY | X与Y的位算数异或 | 双目 | 整数 | 3 |
| XbslN | X算数左移N位 | 双目 | 整数 | 3 |
| XbsrN | X右移N位 | 双目 | 整数 | 3 |
单目运算符有一个参数,双目运算符有两个参数。混合意味着参数即可以是integer 也可以是float。单目运算符的返回值与其参数类型相同。
双目混合运算符(即*、-、+)在参数都是integer时返回类型为integer的对象,在参数至少包含一个float时返回一个float。浮点除法运算符/总是返回一个float。
双目整数运算符(即band、div、rem、bor、bxor、bsl、bsr)的参数必须是整数,其返回值也是整数。
求值顺序取决于运算符的优先级:首先计算第1优先级的运算符,然后是第2优先级,以此类推。括号内的表达式优先求值。
优先级相同的运算符从左到右进行求值。比如:
- A - B - C - D
其求值顺序与下面的表达式一致:
- (((A - B) - C) - D)
