【发布时间】:2012-01-17 16:48:04
【问题描述】:
可能重复:
>> in javascript
这里:
var num=10;
console.log(num/2);
num=4;
console.log(num/2);
它给了我5 和2。
还有这个:
var num=10;
console.log(num>>1);
num=4;
console.log(num>>1);
它还给了我5 和2。
那么x/2 和x>>1 一样吗?但为什么呢?
【问题讨论】:
-
你熟悉整数的二进制表示吗?
-
我认为你只需要了解
>>运算符的作用... -
谷歌搜索“位移操作”
-
那我应该使用
>>1来优化我的代码吗? -
@Derek:除非您可以证明(通过基准测试)1)包含除法的代码段是您的应用程序中的瓶颈,并且 2)将除法更改为移位实际上可以提高性能。大多数编译器都会为您执行此操作,因此一般来说,将除法更改为移位只会导致具有同等性能的代码可读性降低。
标签: javascript binary bit-manipulation