我试图在使用移位时理解计算中数学上正确的顺序。
我发现Javascript似乎按优先级顺序进行计算:
^ * / + - << >>
二进制计算器,例如Windows10的Calculator,使用优先级顺序:
<< >> ^ * / + -
但在这种情况下,数学上正确的顺序是什么?
例如:
计算器 1 + 3 Lsh 3 - 1(结果:24)
的Javascript 1 + 3<< 3 - 1(结果:16)
试一试: http://www.w3schools.com/code/tryit.asp?filename=F0L1LGPQX9T2
答案 0 :(得分:2)
没有"数学上正确的顺序"为此
数学考虑指数,乘法/除法和加法/减法,但按位运算带有编程语言,请参阅https://en.wikipedia.org/wiki/Order_of_operations#Programming_languages
答案 1 :(得分:1)
使用PEMDAS方法:Parentheses, Exponents, Multiplication and Division, and Addition and Subtraction
。
所以这意味着正确的订单是^ * / + - << >>
。