在负整数上使用负移位值进行右移

时间:2017-12-27 15:45:55

标签: java bit-manipulation

嘿,我试图运行以下代码块,实际上使用负移位值右移负整数。像(negative integer)>>(negative shift value)这样的东西。

但有趣的是,所发现的是什么,无论转移的价值是什么?每次产生-1结果时的整数值。 Plz解释为什么答案总是-1

示例:

      -8>>-9
      Result: -1
      -10>>-8
      Result: -1
      -8>>-2
      Result: -1

这个问题实际上是关于负移位值如何使用>>进行右移的负整数整数值。而不是简单的二元右移。

1 个答案:

答案 0 :(得分:-1)

我的解释是:

根据This article

向右移动与将其除以2的幂相同。 当您使用负值时,两侧(-8>>-9)使用负数也是如此。例如-8>>-1 => -4

当你降到-1时,你会得到-1 / 2 => -1,就像整数中的行为一样