在负整数上负移位值的右移

嘿,我试图运行下面的代码块,它实际上使用负移位值右移了负整数值。类似(negative integer)>>(negative shift value)。在负整数上负移位值的右移

但有趣的是,发现的是什么是什么,无论移位的值是多少&整数的值每次产生的结果为-1。 PLZ解释为什么答案总是-1

实施例:

 -8>>-9 

Result: -1

-10>>-8

Result: -1

-8>>-2

Result: -1

这个问题实际上是约负位移值上负整数的整数值是如何工作的右移位使用>>和不是简单的二进制右移位。

回答:

我的解释是这样的:

根据This article

右移相同除以二的幂。 当您在负数值上使用负数(-8>>-9)时也一样。例如-8>>-1 => -4

当你归结为-1,那么你得到-1/2 => -1喜欢在整数

以上是 在负整数上负移位值的右移 的全部内容, 来源链接: utcz.com/qa/266115.html

回到顶部