嘿,我试图运行以下代码块,实际上使用负移位值右移负整数。像(negative integer)>>(negative shift value)
这样的东西。
但有趣的是,所发现的是什么,无论转移的价值是什么?每次产生-1
结果时的整数值。 Plz解释为什么答案总是-1
。
示例:
-8>>-9
Result: -1
-10>>-8
Result: -1
-8>>-2
Result: -1
这个问题实际上是关于负移位值如何使用>>进行右移的负整数整数值。而不是简单的二元右移。
答案 0 :(得分:-1)
我的解释是:
向右移动与将其除以2的幂相同。
当您使用负值时,两侧(-8>>-9
)使用负数也是如此。例如-8>>-1 => -4
当你降到-1时,你会得到-1 / 2 => -1
,就像整数中的行为一样