>> =如何在JavaScript中运行

时间:2013-05-07 11:44:45

标签: javascript

此运算符如何在JavaScript中运行。来自https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String#Non-native_methods

var s = 12;
s>>=1;
console.log( s );
s>>=1;
console.log( s );
s>>=1;
console.log( s );

我得到结果“6,3,1”。我很好奇它的工作。

3 个答案:

答案 0 :(得分:8)

>>=执行按位右二进制移位,并将结果分配回左手操作数。

12      is 0b1100
12 >> 1 is 0b0110 (6)
 6 >> 1 is 0b0011 (3)
 3 >> 1 is 0b0001 (1)

请注意,单个位右移相当于“整数除以2”运算。

在JS中,所有按位运算(>>>除外)都将左手操作数隐式转换为带符号的32位数。 >>>操作案例为无符号 32位数。

答案 1 :(得分:6)

这是一个右移操作员。 二进制121100,右移1个位置01106,右移1个位置为0011,最后右移给你0001

答案 2 :(得分:3)

正如其他人所说,这是一个right shift operation

等于写作

s = s >> 1

所以它主要是一条捷径。