>>操作符在Javascript中做什么?

Dan*_*Dan 1 javascript

可能重复:
>>在javascript中

我经历了一些代码,我跑进2个怪异运营商:>><<,在形式2<<3442132132>>546542132.

我推断这x<<y意味着x时间2的力量y.意思4<<34*(Math.pow(2,3)),是32,但是我找不到什么x>>y意思.

我知道它通常会返回0小数字,但是当涉及高数字时,结果通常是一个小数字.

Den*_*nis 6

来自Mozilla:

左移a << b将二进制表示b(<32)位向左移位,从右移零.
符号传播右移a >> b向右移位二进制表示b(<32)位,丢弃移位的位.

442132132>>546542132 对于只有32位宽的数字来说似乎过多了.


phi*_*hag 6

>>运营商位移由右一个左值.

a >> b相当于parseInt(a / Math.pow(2, b)).

例如:

 1 >> 0 == 1
 4 >> 1 == 2
 6 >> 1 == 3
42 >> 3 == 5
0x120 >> 4 == 0x12
0x129 >> 4 == 0x12
0x12f >> 4 == 0x12
0x130 >> 4 == 0x13
Run Code Online (Sandbox Code Playgroud)