Signed right shift 5 >> 1 0101 >> 1 0010 2
>>> Zero fill right shift 5 >>> 1 0101 >>> 1 0010 2
这些例子看起来是一样的!我想知道这两个之间的区别。
答案 0 :(得分:1)
使用>>>
,0
s从左侧移入。
使用>>
,最左边的位的副本从左侧移入。如果最左边的位是0,则它与>>>
相同,但如果最左边的位是1,则它将是不同的。例如:
// in binary, -5 is represented as 111111111111... on the left
console.log(-5 >> 4); // -5 >> 4 results in the left side still looking like 111111...
console.log(-5 >>> 4); // -5 >>> 4 shifts in 5 zeros: 000001111111...

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators