【发布时间】:2014-10-01 02:22:03
【问题描述】:
long value = 0x88888888 ;
int i = (int) (value & 0xff);
上述表达式的求值是如何进行的?是吗
int i = (int)value & (int)0xff ;
还是先计算按位和运算?我很困惑:-|
【问题讨论】:
-
()中的任何内容都会在应用外部的任何内容之前进行评估。标准规则是扩展较短的操作数以匹配较长的操作数。 -
但这有关系吗?无论哪种方式
i = 0x88 -
这就是我的理解。但我有点困惑。谢谢!
-
是的,如果值是
-
@sk89 我认为它与按位运算符(
&、|、^、~)没有什么不同,因为高阶位的内容永远不会影响低位发生的事情,反之亦然。
标签: java operators bit-manipulation bitwise-operators typecast-operator