>> 是算术右移, >>> 是逻辑右移。 在算术移位中,符号位被扩展以保持数字的符号性。 例如:-2 以 8 位表示将是 11111110 (因为最高有效位具有负权重)。使用算术移位将其右移一位将得到 11111111 或 -1。然而,逻辑右移并不关心该值是否可能表示有符号数;它只是将所有内容向右移动并从左侧用 0 填充。使用逻辑移位将 -2 右移一位将得到 01111111 。 原文由 danben 发布,翻译遵循 CC BY-SA 3.0 许可协议
>>
是算术右移,>>>
是逻辑右移。在算术移位中,符号位被扩展以保持数字的符号性。
例如:-2 以 8 位表示将是
11111110
(因为最高有效位具有负权重)。使用算术移位将其右移一位将得到11111111
或 -1。然而,逻辑右移并不关心该值是否可能表示有符号数;它只是将所有内容向右移动并从左侧用 0 填充。使用逻辑移位将 -2 右移一位将得到01111111
。