此运算符如何在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”。我很好奇它的工作。
答案 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)
这是一个右移操作员。
二进制12
为1100
,右移1个位置0110
为6
,右移1个位置为0011
,最后右移给你0001
。
答案 2 :(得分:3)