GUIDE 05

运算优先级:-2^2、6÷2(1+2) 之争与计算器的规则

讲解括号、后缀运算符、乘方、一元负号和乘法的优先级,为什么 -2^2 = -4 而 Excel 却得 4,乘方的右结合性,以及 SciKey 如何计算 6÷2(1+2)。

同一个算式在不同计算器上可能得到不同结果。原因几乎总是各自对运算优先级的定义不同。本指南列出 SciKey 完整的优先级表,并仔细分析三个经常引发争论的算式:-2^22^3^26÷2(1+2)

1. SciKey 的优先级(从高到低)

级别运算结合方向示例
1括号、函数调用(1+2)sin(30)
2后缀 ! % °从左到右5! = 120,50% = 0.5
3乘方 ^从右到左2^3^2 = 512
4一元 - +-2^2 = −4
5×÷mod、省略的乘号从左到右6÷2(1+2) = 9
6+从左到右10−4−3 = 3

同级运算符按结合方向计算:8÷2÷2 是 (8÷2)÷2 = 2,10−4−3 是 (10−4)−3 = 3。

2. 为什么 -2^2 等于 −4

在数学中,−2² 读作 −(2²) = −4:先算乘方,负号作用于结果。这与 x = 2 时 −x² = −4 是同一规则。SciKey 把一元负号的优先级排在乘方之下,所以 -2^2 返回 −4。要算 (−2)²,请用括号:(-2)^2 = 4。

指数中可以带符号:2^-3 即 2⁻³ = 0.125。

Excel 不一样

在 Microsoft Excel 中,=-2^2 返回 4。Microsoft 的文档《Excel 中的计算运算符和优先顺序》在优先级表中把负号(如 −1 中的负号)排在百分号(%)和乘方(^)之前,因此 Excel 计算的是 (−2)²。如果电子表格与计算器的结果不一致,就要怀疑这一点。在 Excel 中输入 =-(2^2) 可得 −4。

编程语言也各不相同。Python 把 -2**2 计算为 −4(与数学惯例一致),而 JavaScript 认为 -2**2 有歧义,不加括号就会报语法错误。

3. 乘方从右往左:2^3^2 = 512

在数学中,2^3^2 这样的幂塔表示 2^(3²) = 2⁹ = 512,因为要先算指数的指数。SciKey 把 ^ 视为右结合,所以 2^3^2 = 512。要算 (2³)² = 64,请写成 (2^3)^2

Excel 的文档说明,同级运算符从左到右计算,乘方也不例外,因此在 Excel 中 =2^3^2 得 64。同样,加上括号就能在任何地方都明确意图。

4. 6÷2(1+2) 之争

这个算式在网上反复流传,有人坚持答案是 9,也有人坚持是 1。

  • 读作 9: 省略的乘号也只是乘法。6÷2×3 = (6÷2)×3 = 9。
  • 读作 1: 2(1+2) 像 2a 一样是一个整体,应先算。6÷(2×3) = 1。

公允的结论不是哪一方“错了”,而是这种写法本身有歧义。专业文献会避免这种写法,改用分数线或括号。

SciKey 的选择

SciKey 让省略的乘号与普通乘除同级,并从左到右计算。因此:

  • 6÷2(1+2) = 9
  • 1/2π = (1/2)×π = 1.57079632679(同时显示为 π/2)
  • 要算 1/(2π),请输入 1/(2π) = 0.159154943092

之所以这样选择,是因为单一规则更容易预测:无论是否写出乘号,乘除都按书写顺序计算。

其他计算器呢?

有些厂商和型号被设计成先计算省略乘号的乘法,再算普通的 × 或 ÷,因此同一个算式可能得到 1。不同型号的行为不同,请查阅考试用计算器的说明书。最稳妥的做法是从一开始就不输入有歧义的算式。

5. 后缀运算符与 %

!%° 只作用于紧挨在前面的值。

  • 3!2 = 3! × 2 = 12(省略的乘号)
  • 2×3! = 12,而 (2×3)! = 720
  • 200×15% = 200 × 0.15 = 30
  • 100+10% = 100 + 0.1 = 100.1

注意最后一个。有些台式计算器把 100 + 10 % 当作“在 100 上加 10%”(= 110),但 SciKey 的 % 只是除以 100。要加价 10%,请输入 100×(1+10%) = 110。

6. mod 的优先级与符号

mod 与乘法同级:2+7 mod 3 是 2 + (7 mod 3) = 3。结果的符号与除数相同:-7 mod 3 = 2,7 mod -3 = −2。在 -7 mod 3 中,一元负号先与 7 结合,因为一元符号的级别高于乘法级。

7. 函数、常数与乘方

函数调用优先级最高,所以 sin(30)^2 是 (sin 30°)² = 0.25,与教材中的 sin²30° 相同(DEG)。要算 30² 的正弦,请写在括号内:sin(30^2)。SciKey 要求函数带括号,所以 sin 30^2 这种有歧义的输入不会被接受。

常数后面的乘方比省略的乘号结合得更紧。2π^2 是 2×(π²) = 19.7392088022,而不是 (2π)² = 39.4784176044。也正因如此,球的表面积 4πr² 输入为 4πx^2 时能按预期计算。

8. 用括号消除歧义

比背规则更可靠的是大方地使用括号

意图有歧义的输入明确的输入
a/(bc)a/bca/(b×c)
(−x)²-x^2(-x)^2
e^(−t/RC)e^-t/RCe^(-t/(R×C))
(a+b)/2a+b/2(a+b)/2

表中的 a、b、t、R、C 只是占位符;在 SciKey 中请替换为数字或变量 x、y、z(注意 R 已被气体常数占用)。第三行的 e^-t/RC 会被计算为 (e^−t)/RC。只要指数是一个表达式,就给它加括号。多余的括号从不会让答案出错,缺少括号却常常会。

9. 要点

  • 乘方先于一元负号:-2^2 = −4(Excel 得 4)
  • 乘方从右往左:2^3^2 = 512
  • ×、÷ 与省略的乘号同级,从左到右:6÷2(1+2) = 9
  • % 表示除以 100:100+10% = 100.1
  • 拿不准就加括号

→ 打开计算器 函数参考

最后更新:2026-09-24