use*_*065 4 java bit-manipulation
我认为答案是直截了当的,但我仍然没有得到它.
byte a=5;
int b=10;
int c=a>>2+b>>2;
System.out.print(c);
Run Code Online (Sandbox Code Playgroud)
由于a>>2是1和b>>2是2,我期待输出为3但0.什么原因?
这是因为运营商的优先权.
你做的和你一样
int c=(a>>(2+b))>>2;
Run Code Online (Sandbox Code Playgroud)
你要这个 :
int c=(a>>2)+(b>>2);
Run Code Online (Sandbox Code Playgroud)