首先,(-1 >>> 0) === (2**32 - 1)我期望这是由于在左侧添加一个新的零,从而将数字转换为 33 位数字?
(-1 >>> 0) === (2**32 - 1)
但是,为什么也是(-1 >>> 32) === (2**32 - 1)如此,虽然我期望它(在将 32 位数字移位 32 次并用零替换最高有效位之后)为 0。
(-1 >>> 32) === (2**32 - 1)
不应该是相等的((-1 >>> 31) >>> 1) === 0吗?或者我错过了什么?
((-1 >>> 31) >>> 1) === 0
javascript bit-manipulation
bit-manipulation ×1
javascript ×1