标签: java bit-manipulation
我认为答案是直截了当的,但我仍然没有得到答案。
byte a=5; int b=10; int c=a>>2+b>>2; System.out.print(c);
由于a>>2为1且b>>2为2,我预计输出为3,但为0。原因是什么?
a>>2
1
b>>2
2
3
0
答案 0 :(得分:7)
这是因为operator precedence。
您所做的与
int c=(a>>(2+b))>>2;
你想要这个:
int c=(a>>2)+(b>>2);