为什么10 >> 2 + 5 >> 2等于零?

维斯韦斯瓦拉劳洛古

考虑以下代码:

int a=10, b=5;
int c=a>>2+b>>2;
System.out.println(c);

运行时,(令人惊讶的)输出为0。

为什么会这样呢?

姓名

考虑到Java的运算符优先级(特别是+优先于运算符>>)和关联性规则,该表达式等效于

(a >> (2 + b)) >> 2

或者

(10 >> (2 + 5)) >> 2

这是零。

如果您需要在添加之前进行转换,请在它们之间加上括号:

(a >> 2) + (b >> 2)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档