【发布时间】:2011-09-17 05:32:01
【问题描述】:
我正在阅读 underscore.js 代码。我发现了这个:
var mid = (low + high) >> 1;
>> 1 是做什么的?为什么有用?
【问题讨论】:
-
作者可能认为
>> 1会比/ 2更高效。在大多数语言中,这是不正确的;例如,C 编译器可能会为两者生成相同的代码。我不知道这是否同样适用于 JavaScript。 -
@Keith:JavaScript 将切换到浮点值进行除法,因此使用移位可以将所有内容保持在整数范围内,而无需使用
Math.floor。