计算订单规则左移" Lsh"在Javascript中

时间:2016-11-08 13:20:05

标签: javascript math

我试图在使用移位时理解计算中数学上正确的顺序。

我发现Javascript似乎按优先级顺序进行计算:

^ * / + - << >>

二进制计算器,例如Windows10的Calculator,使用优先级顺序:

<< >> ^ * / + -

但在这种情况下,数学上正确的顺序是什么?

例如:

计算器 1 + 3 Lsh 3 - 1(结果:24)

的Javascript 1 + 3<< 3 - 1(结果:16)

试一试: http://www.w3schools.com/code/tryit.asp?filename=F0L1LGPQX9T2

2 个答案:

答案 0 :(得分:2)

没有"数学上正确的顺序"为此

数学考虑指数,乘法/除法和加法/减法,但按位运算带有编程语言,请参阅https://en.wikipedia.org/wiki/Order_of_operations#Programming_languages

答案 1 :(得分:1)

使用PEMDAS方法:Parentheses, Exponents, Multiplication and Division, and Addition and Subtraction

所以这意味着正确的订单是^ * / + - << >>

JS Operator precedence table