这个问题已经在这里有了答案:




已关闭8年。






c/c++中,按位运算比常规(算术)运算要快(在低性能处理器中,至少要好得多)。 js是否也适用?我不认为它在c语言中更快的原因是按位操作是硬连线的,通常在1个处理器周期内完成。但是js在没有任何此类硬件(我指的是寄存器)访问的浏览器中运行。我不确定(大约70%的确定:))。按位运算符的典型(或更聪明的)用法是什么(尤其是在js中,但我也想知道其他人)。如果我在任何地方都不对,请纠正我。

最佳答案

JS中的按位运算符很慢。与C相比,它真的很慢。原因是在JS中,所有数字都表示为 double 浮点数,因此,要执行按位运算,运行时必须将它们转换为32位整数然后返回。

这并不是说它们没有用。例如,Node#compareDocumentPosition返回一个位掩码,而something.length >>> 0是获取something的length属性的常用方法,如果length不是数字或NaN,则它为零。另外,假定a / b | 0Math.floor(a / b)> = 0,则a是执行b的快速方法。

关于javascript - javascript中按位运算的意义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9075351/

10-12 00:57